我正在嘗試創(chuàng)建一個 mysql 查詢來查看存儲搜索查詢的表。該查詢試圖獲取符合以下條件的所有行:
>=
到一個日期此查詢不起作用,但應(yīng)概述我正在嘗試執(zhí)行的操作:
SELECT * FROM `analytics` WHERE `date` >= '2021-01-01' GROUP BY `query` HAVING COUNT(*) >= 3 AND GROUP BY `user` HAVING COUNT(*) >= 2 ORDER BY id DESC;
示例數(shù)據(jù)
id | 用戶 | 查詢 | 日期 |
---|---|---|---|
1 | 5 | 什么是狗 | 2021-01-01 |
2 | 5 | 什么是狗 | 2021-01-01 |
3 | 6 | 什么是狗 | 2021-01-01 |
4 | 7 | 什么是狗 | 2021-01-01 |
5 | 7 | 什么是兄弟 | 2021-01-01 |
示例 SQL
SELECT * FROM analytics WHERE date >= '2021-01-01' GROUP BY query HAVING COUNT(*) >= 3 AND GROUP BY user HAVING COUNT(*) >= 2 ORDER BY id DESC;
使用上面查詢中設(shè)置的值,應(yīng)返回查詢“What is a dogs”的單行,所有其他列并不重要。
我知道您可以將單獨的列用逗號分隔為 GROUP BY,但我似乎無法弄清楚如何為每列設(shè)置不同的值。
您可以在同一個 HAVING
子句中設(shè)置這兩個條件:
SELECT `query` FROM `analytics` WHERE `date` >= '2021-01-01' GROUP BY `query` HAVING COUNT(*) >= 3 AND COUNT(DISTINCT `user`) >= 2;