[英]How do I get the count for a SQL query containing a GROUP BY statement?
所以我有一個像這樣的SQL查詢:
SELECT p.*
FROM parent p JOIN join_table j ON p.id=j.parent_id
WHERE j.child_id=1 OR j.child_id=2
GROUP BY j.parent_id
HAVING COUNT(j.child_id)=2;
我在這里得到了這個優秀的答案 。 現在我想修改查詢以返回那里所有父元素的計數。 不幸的是由於GROUP BY
語句,我無法做到這一點(因為它將給出每個分組語句的計數)。
我的嘗試是明顯而天真的方法:
SELECT COUNT(DISTINCT(p.id))
FROM parent p JOIN join_table j ON p.id=j.parent_id
WHERE j.child_id=1 OR j.child_id=2
GROUP BY j.parent_id
HAVING COUNT(j.child_id)=2;
謝謝你的幫助。
嘗試這個:
SELECT COUNT(*) FROM
(SELECT p.*
FROM parent p JOIN join_table j ON p.id=j.parent_id
WHERE j.child_id=1 OR j.child_id=2
GROUP BY j.parent_id
HAVING COUNT(j.child_id)=2) AS res;
SELECT SUM(CN) FROM (
SELECT p.*, count(*) cn
FROM parent p JOIN join_table j ON p.id=j.parent_id
WHERE j.child_id=1 OR j.child_id=2
GROUP BY j.parent_id
HAVING COUNT(j.child_id)=2
);
這應該給你總數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.