SQL-如何在Groupby中使用別名?
SQL語法。所以如果我有
SELECT
itemName as ItemName,
substring(itemName, 1,1) as FirstLetter,
Count(itemName)
FROM table1
GROUP BY itemName, FirstLetter
這將是不正確的,因爲
GROUP BY itemName, FirstLetter
真的應該
GROUP BY itemName, substring(itemName, 1,1)
對於大多數關係數據庫系統,此順序解釋哪些名稱(列或別名)是有效的,因爲它們必須是在前一步中引入的。
因此,在Oracle和SQLServer中,不能使用在SELECT子句中定義的GROUP BY子句中的術語,因爲GROUP BY是在SELECT子句之前執行的。
可以始終使用子查詢,以便可以使用別名;
SELECT ItemName, FirstLetter, COUNT(ItemName)
FROM (
SELECT ItemName, SUBSTRING(ItemName, 1, 1) AS FirstLetter
FROM table1
) ItemNames
GROUP BY ItemName, FirstLetter