[英]MySQL-how to query to get all records and distinct count of specific column in single query
我有三个字段的表。
id name place
1 A x
2 A v
3 B z
4 A a
我已经有这样的查询,
select Id
, Place
from tbname
where Name like '" . mysql_real_escape_string( $name, $sql ) . "'
这也将与'%'进行通配符匹配
现在,我想要的是在上述查询中对“名称”字段的不同值进行计数,而不影响先前的结果。
如果通配符与“名称”字段中的所有值匹配,则计数为2。
如果我愿意
select Id
, count(distinct Name) as count
, Place from tbname
where Name like '" . mysql_real_escape_string( $tidbit, $sql ) . "'
这将返回,
Id:1
count:2
Place:x
但是我想要所有的比赛以及计数,
Id:1,2,3,4
count:2
Place:x,y,z,q
有没有办法在单个查询中执行此操作,或者在sql或php中有任何函数?
请帮助我找出这个问题。
提前致谢。
我认为
select Res1.id,Res1.cnt,Res2.place from (select id,count(distinct Name) cnt
from tbname groupby id) res1 inner join
select distinct id ,place from tbname group by id ) res2 on
res1.id=res2.id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.