在MySQL中,可以在SELECT子句中創建的GROUP BY子句中使用別名(參見MySQL Reference)。GROUP BY子句的別名?
我只是想知道爲什麼它不可能在GROUP BY中創建一個別名並在SELECT中使用它,它遵循SELECT語句的執行順序。
換句話說,爲什麼下面不合語法?
SELECT region, SUM(population)
FROM population_us_states
GROUP BY
CASE state_name
WHEN 'CT' THEN 'New England'
WHEN 'RI' THEN 'New England'
WHEN 'MA' THEN 'New England'
WHEN 'ME' THEN 'New England'
WHEN 'NH' THEN 'New England'
WHEN 'VT' THEN 'New England'
WHEN 'CA' THEN 'West Coast'
WHEN 'OR' THEN 'West Coast'
WHEN 'WA' THEN 'West Coast'
ELSE 'other' END AS region;
爲了更好的可維護性,這真的應該在自己的表中。它可以提供更好的性能,儘管額外加入(據推測,這種方式可以通過優化器與havok進行分組) –