我试着要求其他答案,但是没有运气,因此提出了要求。
我有一张桌子,其他年份也有几张类似的桌子,这是桌子的结构
--------------------------------
STATUS | Year | Company Name
--------------------------------
Certified | 2010 | Google
Cert-Denied | 2010 | Google
Denied | 2010 | Google
Withdrawn | 2010 | Google
Denied | 2010 | Microsoft
Withdrawn | 2010 | Microsoft
Certified | 2010 | Apple
Cert-Denied | 2010 | Apple
----------------------------------
当我编写查询以列出一年中的所有公司GROUP BY STATUS时,我想查看与状态计数相对应的所有条目,包括零计数。
如果我在Google上搜索,我会得到这样的信息
Query : Select status, count(*) from table where company like '%Google%' group by status
结果 :
Certified | 1|
Cert-Denied | 1|
Denied | 1|
Withdrawn | 1|
如果我为Microsoft运行相同的软件,我会得到
Denied | 1|
Withdrawn | 1 |
零计数的那些丢失。我希望零计数的那些也像下面这样消失。
Certified | 0|
Cert-Denied | 0|
Denied | 1|
Withdrawn | 1|
我已经阅读了有关联接和内容的信息,但仍不清楚。任何帮助将非常感激。
COUNT只返回他为Microsoft找到的状态的COUNT。而那些被否决了。您必须向查询提供所有状态,并计数所有状态的出现次数。那些未出现的将在表中保留0:
SELECT a.STATUS,
SUM(CASE
WHEN b.STATUS IS NOT NULL
THEN 1
ELSE 0
END) AS StatusCount
FROM (
SELECT DISTINCT STATUS
FROM tab1
) a
LEFT JOIN tab1 b ON a.STATUS = b.STATUS AND b.CompanyName = 'Microsoft'
GROUP BY a.STATUS;
它的作用是:
SELECT DISTINCT STATUS
FROM tab1
这将找到所有可能的状态。如果您有一个包含所有可能状态的参考表,甚至更好,请使用它代替此查询。
然后,您通过状态和companyName在此表上进行LEFT
JOIN。这样,仅当表上有记录时,您才能在STATUS中获得匹配项。如果存在,则将1加到SUM,否则将添加0。
[sqlfiddle demo](http://sqlfiddle.com/#!2/b7cc3/9)
问题内容: 使用此链接中的代码将文本文件内容加载到GUI: 如果input.txt的内容为: 现在,我想计算HashMap中的值,但是计算存储在文本文件中的所有数据行。 我w’d想问我怎么能算的项目,即价值的?根据 作者的姓名 ,我怎么得到 4 号? __ 问题答案: 由于AUTHOR具有1对多的关系,因此应将其映射到结构而不是。 例如:
问题内容: 我有一个如下所示的Pandas DataFrame: 我想跨列获取某个值的计数。所以我的预期输出是这样的: 我知道如何跨行执行此操作,但是对列执行此操作有点奇怪?请帮助我解决这个问题吗?谢谢。 问题答案: 首先将其堆叠,然后使用value_counts:
问题内容: 我需要在应用程序中收集一些统计信息。我有一个用户表(tb_user),每当一个新用户访问该应用程序时,它将在该表中添加一条新记录,即每个用户一行。主要字段是 id 和 date_hour (用户首次访问该应用程序的时间戳)。 tb_user 我需要得到: 按日,周和月划分的平均用户数 例子: 每天:55.45 每周:XX.XX 月:XX.XX 编辑: 我最好的解决方案是: 但是,此解决
我正在创建一个程序,将确定和打印数字奇数,偶数和零在一个整数从键盘。我尝试了几种不同的方法,每种方法都得到了相同的结果。我无法让java将0识别为0,而只能识别为偶数。例1005将给出2赔率和2平。
问题内容: 我创建了以下存储过程,该过程用于计算所选位置的特定范围之间每天的记录数: 但问题是结果没有显示零记录的日子,我很确定这与我的WHERE语句有关,不允许显示零值,但我不知道该如何解决这个问题。 预先感谢尼尔 问题答案: 不是WHERE子句,而是GROUP BY。简而言之,查询将仅返回存在的行的数据。这意味着当您根据时间戳记的日期进行分组时,只会返回有行的日期。SQL Server从上下文
问题内容: 如何从代码中获取任何kafka主题的分区数。我研究了许多链接,但似乎没有一个起作用。 提及一些: http://grokbase.com/t/kafka/users/148132gdzk/find-topic-partition-count- through-simpleclient-api http://grokbase.com/t/kafka/users/151cv3htga/ge