ryy*_*yst 7 mysql sql greatest-n-per-group
我有这个SQL查询:
SELECT id, COUNT(*) AS price
FROM (SELECT * FROM rt WHERE somecondition) AS st
JOIN tt
ON st.id = tt.id
GROUP BY id;
Run Code Online (Sandbox Code Playgroud)
现在,我想选择具有该表最高价格的所有行.我试过这个,遗憾的是根本没有返回任何行:
SELECT id, COUNT(*) AS price
FROM (SELECT * FROM rt WHERE somecondition) AS st
JOIN tt
ON st.id = tt.id
GROUP BY id
HAVING price = MAX(price);
Run Code Online (Sandbox Code Playgroud)
我有点失落,有没有人有任何指针?
HAVING用于在聚合发生后检查条件。
WHERE在聚合发生之前使用。
SELECT id, COUNT(*) AS price
FROM (SELECT * FROM rt WHERE somecondition) AS st
JOIN tt
ON st.id = tt.id
WHERE price = (SELECT MAX(price) FROM ...table)
GROUP BY id
Run Code Online (Sandbox Code Playgroud)