我试图统计表格政策中存在的所有客户端
这是我的表格:
|Policies|
|id| |num_policy| |client_id| |state|
1 1234 1 0
2 5678 1 0
3 9123 1 0
4 4567 2 0
5 8912 3 0
6 3456 4 0
7 7891 4 0
8 2345 4 0
9 6789 4 0
|Clients|
|id| |name|
1 ABC
2 DEF
3 GHI
4 JKL
5 MNO
6 PQR
7 STU
8 VWX
9 YZA
我试图统计政策中存在的所有客户。
|clients| |state|
5 0
我试过了:http://sqlfiddle.com/#!2/eb479/2
select count(*) as total from policies p
INNER JOIN clients c ON c.id = p.client_id
WHERE p.state= 0
group by p.client_id
请有人帮助我吗?
所有的帮助都将被接受。
答案 0 :(得分:1)
您只需计算出现在政策表
中的不同客户ID即可select count(distinct client_id) as count
from policies p
inner JOIN clients c ON c.id = p.client_id
WHERE p.state= 0
如果您信任您的参照完整性,您甚至不需要join
与客户端表,即如果您确定所有client_id字段都填充了有效的客户端,只需执行
select count(distinct client_id) as count
from policies p
WHERE p.state= 0
答案 1 :(得分:1)
您是否尝试让拥有最少一项政策的客户?
select p.client_id from policies p
INNER JOIN clients c ON c.id = p.client_id
WHERE p.state= 0
group by p.client_id
或者您是否想要了解有多少客户有政策?
select count(distinct client_id) as count
from policies p
inner JOIN clients c ON c.id = p.client_id
WHERE p.state= 0
或者您是否想要了解每个客户有多少政策?