1
我總是忘記如何做這樣的事情。按名稱分組
我有一個生日數據庫表,我想知道有多少人有同樣的年齡。
我想:
SELECT TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) AS age, COUNT(age)
FROM person
GROUP BY age
,但得到的錯誤
未知列 '時代' 在 '字段列表'
我如何可以通過做一組一個命名列?
我總是忘記如何做這樣的事情。按名稱分組
我有一個生日數據庫表,我想知道有多少人有同樣的年齡。
我想:
SELECT TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) AS age, COUNT(age)
FROM person
GROUP BY age
,但得到的錯誤
未知列 '時代' 在 '字段列表'
我如何可以通過做一組一個命名列?
別名不能在GROUP BY子句中使用,也不能在選擇列表中的其他列(是的,這很爛)使用。
SELECT TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) AS age, COUNT(TIMESTAMPDIFF(YEAR, birthdate, CURDATE()))
FROM person
GROUP BY TIMESTAMPDIFF(YEAR, birthdate, CURDATE())
沒關係,我想通了。
好吧,我需要使用COUNT(*)
SELECT TIMESTAMPDIFF(YEAR, birthdate, CURDATE()) AS age, COUNT(*)
FROM person
GROUP BY age
這是每個開發人員都希望能夠工作的方式之一。我不明白爲什麼它不起作用......我無法想象這會造成任何實際問題...... – 2009-11-09 19:18:50
感謝您的解釋。是的,當它不能像你想象的那樣工作時,這部分MySQL會感到沮喪。 – 2009-11-09 20:20:06