繁体   English   中英

一个查询MYSQL中有两个(或三个?)计数(通过phpmyadmin)

[英]Having two (or three?) counts in one query MYSQL (Via phpmyadmin)

我很高兴地问了这个问题,已经看了几次答案,但似乎找不到适合我特定数据集的解决方案...(主要是由于我的新手水平,并没有真正完全理解对查询的各个元素进行排序的语法含义)。

我正在尝试在单个结果表中运行两个“计数”-我可以使单个表很好-能够汇总结果将极大地加快我的分析速度。

具体查询为:

(1)

SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
     , COUNT(distinct NAME) as NoExt 
FROM sourcelist, main_small 
WHERE sourcelist.SourcePUID = 'MyVariableHere' 
  AND main_small.NAME = sourcelist.SourceFileName 
  AND sourcelist.hasExtension = 0 
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED` 
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;

和(2)

SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
     , COUNT(distinct NAME) as Ext 
FROM sourcelist, main_small 
WHERE sourcelist.SourcePUID = 'MyVariableHere' 
  AND main_small.NAME = sourcelist.SourceFileName 
  AND sourcelist.hasExtension = 1 
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED` 
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;

如果我想做的事情是可行的,我真的很想看看我是否可以隐含第三个数:

(3)

SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
     , COUNT(distinct NAME) as All 
FROM sourcelist, main_small 
WHERE sourcelist.SourcePUID = 'MyVariableHere' 
  AND main_small.NAME = sourcelist.SourceFileName
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED` 
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;

我想知道是否有人可以取消我所做的事情,然后让我知道我想要的东西是否可能-3个计数(表,组条件和订单明细)和差异有一些共同之处在哪里条件。

即使使用两个count查询,也将存在空值,其中count A将导致与count B产生不同的集合-所以我想知道count是否需要导致相同的基本形状(即,相同的行生成,只是不同的count值) ,而不是计算特定的行生成,导致其中一项计数为空)

要合并(1)和(2),可以使用COUNT(distinct IF( .., .., ..))构造,然后删除hasExtension上的WHERE条件,也可以将(3)合并:

SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`, 
    COUNT(distinct IF(sourcelist.hasExtension=1,NAME,NULL)) as Ext, 
    COUNT(distinct IF(sourcelist.hasExtension=0,NAME,NULL)) as NoExt,
    COUNT(distinct NAME) as `All`
FROM sourcelist, main_small 
WHERE sourcelist.SourcePUID = 'MyVariableHere' AND main_small.NAME = sourcelist.SourceFileName 
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED` ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;

暂无
暂无

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

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