繁体   English   中英

SQL中组的子组

[英]Sub group of group in SQL

dealer  desktop tablet
A       1       0
A       1       0
B       0       1
C       0       0
A       0       1
A       1       0
C       0       1
C       0       0
C       0       0
B       0       1
B       0       0
B       0       0
A       0       0

不太擅长SQL

我想在这里做的是

  1. 按经销商分组
  2. 获取台式机、笔记本电脑( when desktop = 0 and tablet = 0 )和平板电脑的数量
SELECT dealer, COUNT(*) FROM table
GROUP BY dealer

让我知道了经销商的数量,但根据标准,我不知道如何获得它。

我期望的是一排计数。

dealer | laptop | desktop | tablet

也许是这样的:

    select dealer, 
       COALESCE(SUM(case when desktop = 0 and tablet = 0 then 1 end),0) as laptop,
       COALESCE(SUM(case when desktop = 1 then 1 end),0) as desktop,
       COALESCE(SUM(case when tablet = 1 then 1 end),0) as tablet
from test
group by dealer;

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=47d3d7761784bda3b94413f6603e06f7

选择经销商,sum(desktop) 作为桌面,sum(tablet) 作为平板,sum(

首先,您必须为笔记本电脑创建另一列。 我只会使用 case when 声明,谷歌它以获取更多详细信息。

(选择*,案例(当台式机+平板电脑='0'然后'1'否则'0'结束)作为笔记本电脑来自____)

然后,您可以按经销商回调不同的金额和分组!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM