gpt4 book ai didi

mysql - SQL - 为什么这 3 个查询的结果不相加?

转载 作者:行者123 更新时间:2023-11-29 05:21:07 25 4
gpt4 key购买 nike

下面的 3 个查询中的每一个都会吐出一系列月份以及为每个月创建的报价数量。数据库中的每个报价都有一个与之关联的用户名,即该人的电子邮件地址。

我假设 QUERY 1 中任何一个月的总数应该是 QUERY 2 中该月的数字加上 QUERY 3 中该月的数字。但它们不会相加。

例如,我本以为我会得到类似这样的东西:

QUERY NUMBER 1
Aug 2013 -> 2836

QUERY NUMBER 2
Aug 2013 -> 2500

QUERY NUMBER 3
Aug 2013 -> 325

所以 2500(查询编号 2)+ 325(查询编号 3)= 2825 而不是 2836(查询编号 1)我不确定为什么它不给我 2836

查看下面的查询,为什么 QUERY 2 + QUERY 3 = QUERY 1?只有一行发生了变化:

WHERE created_by_username = 'sysadmin@mydomain.co.uk'

//QUERY NUMBER 1
SELECT DATE_FORMAT(created,'%b %Y'),
COUNT(DISTINCT username)
FROM view_all_quotes
GROUP BY DATE_FORMAT(created,'%b %Y')
ORDER BY created ASC

//QUERY NUMBER 2
SELECT DATE_FORMAT(created,'%b %Y'),
COUNT(DISTINCT username)
FROM view_all_quotes
WHERE created_by_username = 'sysadmin@mydomain.co.uk'
GROUP BY DATE_FORMAT(created,'%b %Y')
ORDER BY created ASC

//QUERY NUMBER 3
SELECT DATE_FORMAT(created,'%b %Y'),
COUNT(DISTINCT username)
FROM view_all_quotes
WHERE created_by_username <> 'sysadmin@mydomain.co.uk'
GROUP BY DATE_FORMAT(created,'%b %Y')
ORDER BY created ASC

抱歉,我无法在这些帖子中找到有关格式化 SQL 的建议文档。

最佳答案

created_by_usernamenull 的行将被两个 where 子句排除。

您可以通过以下方式找到这些行:

select * from view_all_quotes where created_by_username is null

关于mysql - SQL - 为什么这 3 个查询的结果不相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com