簡體   English   中英

如何獲取包含GROUP BY語句的SQL查詢的計數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM