如何正確地將此語句組合在一起。如何組合GROUP BY,ORDER BY和HAVING
SELECT *, COUNT(*)
FROM user_log
GROUP BY Email
ORDER BY UpdateDate DESC
HAVING COUNT(*) > 1
讓我知道
如何正確地將此語句組合在一起。如何組合GROUP BY,ORDER BY和HAVING
SELECT *, COUNT(*)
FROM user_log
GROUP BY Email
ORDER BY UpdateDate DESC
HAVING COUNT(*) > 1
讓我知道
ORDER BY
總是最後...
但是,你需要選擇你真正想要領域,然後由他們只選擇那些和組。 SELECT *
和GROUP BY Email
會給你隨機數所有的領域,但Email
。由於創建的問題,大多數RDBMS甚至不允許你這樣做,但MySQL是例外。
SELECT Email, COUNT(*)
FROM user_log
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
+1關於MySQL和GROUP BY的好點子 –
(當你有一個「GROUP BY」)時,同樣的邏輯適用於你放入'SELECT'列表,'HAVING'子句和'ORDER BY'子句的所有字段。所以,它也適用於'ORDER BY UpdateDate'。除非'UpdateDate'依賴於'Email',否則你會得到一個相當隨機的排序。 –
步驟使用組通過,通過...
Select Attitude ,count(*) from Person
group by person
HAving PersonAttitude='cool and friendly'
Order by PersonName.
一般的GROUP BY規則是:「如果指定了GROUP BY子句,SELECT列表中的每個列引用都必須標識分組列或作爲設置函數的參數,」 – jarlh
你的代碼應該是包含由和順序設置在具有WHILE
之前group by
和having
:
SELECT Email, COUNT(*)
FROM user_log
WHILE Email IS NOT NULL
GROUP BY Email
HAVING COUNT(*) > 1
ORDER BY UpdateDate DESC
好複製粘貼:P –
一般GROUP BY提示:「如果指定了GROUP BY子句,則SELECT列表中的每個列引用都必須標識分組列或作爲設置功能「。 – jarlh