问题描述
我正在尝试建立一个有一个父母和8个孩子的系统。我通过有一个user_id和tier_id表来完成此操作。现在,我需要获取少于8次的所有tier_id的列表,所以我知道该层是不完整的,然后可以转到另一个列表并获得替换。
Retailers Asia USA
------------------
A 1 5
B 6
C 2 7
D 2
E 3 3
F 1
G 4 4
我知道这是不对的,但是也许可以帮助向一个天才解释我正在尝试做什么。
解决方法
首先,您的查询需要一个group by
子句,该select
子句应与它们保持一致:
select tier_id,count(*) cnt
from tiers
group by tier_id
这给您每个tier_id
一行,并包含相应的行数。然后,您可以使用having
子句来过滤计数:
select tier_id,count(*) cnt
from tiers
group by tier_id
having count(*) < 8
,
您必须在HAVING
子句中使用GROUP BY
。
SELECT tier_id,count(*) as TotalCount
FROM tiers
GROUP BY tier_id
HAVING TotalCount < 8
也许这会对您有所帮助。