gpt4 book ai didi

mysql - 对于表中未出现的行,将行计数返回为 0

转载 作者:行者123 更新时间:2023-11-30 01:33:31 25 4
gpt4 key购买 nike

我有这张表:

MonthList (month_name, ticket)

我想获取特定月份发生的次数。

例如,在第二季度,我运行以下查询:

SELECT month_name as 'Month', count('Month') as 'Ticket Count' from Monthlist
where month_name in ('May', 'June', 'July')
group by Month order by Month asc

现在,如果没有包含 May 的行,则结果中根本不会返回 May,我会得到如下结果:

June 5

July 10

我希望上面的列表也包含 5 月 0 日

最佳答案

为此,您最好在月份表(包含月份名称)和票证表(包含票证)之间执行联接。

一个月将有一个整数 ID,票证表将有一个指向月份表的列链接。

然后您将执行如下的 SQL 查询。

SELECT
months.month_name AS 'Month',
count(tickets.id) AS 'Ticket Count'
FROM
months
LEFT JOIN
tickets
ON
tickets.month_id = months.id
GROUP BY
months.id

这减少了您在工单表中复制的数据量,并且更加灵活。

上面的查询未经测试,但我很确定应该可以完成这项工作,当然,只要您的数据库具有所需的表。

第二个示例使用月份名称并按特定月份进行过滤。

SELECT
months.month_name AS 'Month',
count(tickets.id) AS 'Ticket Count'
FROM
months
LEFT JOIN
tickets
ON
tickets.month_name = months.month_name
WHERE
months.month_name IN ("May","June","July")
GROUP BY
months.month_name
ORDER BY
months.month_name ASC

关于mysql - 对于表中未出现的行,将行计数返回为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17185647/

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