Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 分组方式有两列_Sql_Mysqli_Group By - Fatal编程技术网

Sql 分组方式有两列

Sql 分组方式有两列,sql,mysqli,group-by,Sql,Mysqli,Group By,我试图在子查询中使用GROUPBY编写一个查询,我引用了很多博客,但无法获得所有的值 ps_id ps_name city_id 2 abc 1 3 xyz 2 4 fer 4 5 bbb

我试图在子查询中使用GROUPBY编写一个查询,我引用了很多博客,但无法获得所有的值

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
我有三张表,下面是这些表的结构

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
宠物主人

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
城市大师

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
city_id city_name     
1       Bangalore    
2       COIMBATORE   
4       MYSORE       
Api_条目

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
api_id   ps_id otp
1        2     yes
2        3  
3        2     yes
4        3     yes
5        4           
6        5     yes
7        5     yes      
8        5     yes
查询是为了获取特定城市和日期范围内的卖家数量、otp为零的宠物卖家数量、otp为1的宠物卖家数量、otp为2的宠物卖家数量、otp>2的宠物卖家数量

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
通过下面的查询,我可以得到城市,psp和零otp

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
select cm.city_name,
     count(ps.ps_id) as PSP,
     ((select count(ps1.ps_id) 
          FROM ps_master ps1  
          WHERE ps1.city = cm.city_id)-
       (SELECT count(distinct ps1.ps_id) 
          from ps_master ps1  
          INNER JOIN api_entry ae ON ps1.ps_id = ae.ps_id  and otp!=''
          WHERE ps1.city = cm.city_id  and date(timestamp) >= curdate() - INTERVAL DAYOFWEEK(curdate())+6 DAY AND date(timestamp) < curdate())) as zero_psp 
  from ps_master ps INNER JOIN city_master cm ON ps.city = cm.city_id and                    cm.city_type = 'IN HOUSE PNS'
   group by city_id
请告诉我解决这个问题的方法。
提前感谢

这并不难做到,而且你走上了正确的道路。以下是我将使用的:

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               
select c.city_name, a.otp, p.ps_name, COUNT(*) nbr
from Api_Entry a
inner join Pet_Seller_Master p on p.ps_id=a.ps_id
inner join City_Master c on p.city_id=c.city_id
group by c.city_name, a.otp, p.ps_name
现在,如果您想获得otp为零的卖家数量,只需应用where条款:

ps_id   ps_name city_id                         
2       abc     1                               
3       xyz     2                               
4       fer     4                               
5       bbb     1                               

请找个人帮我解决这个问题。谢谢