Gnuplot
我目前在我的select语句中有上述代码,但它返回活动子项的计数,而不是具有活动子项的父项的数量。虽然我的数据的很大一部分是单个孩子的元素,但是有些父母会有大量的孩子,他们真的搞乱了。如何计算生育状况超过0的孩子的父母数量的最佳方法是什么?
表格中的相关字段如下所示。
'SUM(IF(children.status > 0, 1, 0)) AS count'
答案 0 :(得分:1)
你需要一个DISTINCT来摆脱重复。这是使用CASE:
COUNT(DISTINCT CASE WHEN children.status > 0 THEN parent_id END)
你可能会对IF做同样的事情,但我更喜欢标准SQL的CASE:
COUNT(DISTINCT IF(children.status> 0,parent_id,NULL))
答案 1 :(得分:0)
SELECT count(*)
FROM parent
WHERE id IN (SELECT DISTINCT parent_id
FROM children
WHERE status > 0);
我不知道你的表是如何设置的,但是这样的东西可能会起作用 父母和子女是不同的桌子还是同一张桌子? (说实话并不重要,因为这对两者都有效,但如果你有两个不同的表,你可能能够以不同的方式解决它)