gpt4 book ai didi

sql - 填补 SQL 查询中的空白

转载 作者:行者123 更新时间:2023-11-29 01:48:14 32 4
gpt4 key购买 nike

抱歉这个模糊的主题,但我想不出该放什么。

这是我的问题,我正在对一个表进行查询,该表返回与一天相关的项目计数。我想确保如果我对数据库进行查询,我总是会得到一定数量的行。例如,假设我有下表,其中包含人们何时登录网站的日志:

**WebsiteLogin**
id: Integer
login_date: Datetime

然后我可以通过执行以下操作来获取每个日期的登录计数:

SELECT DATE(login_date), COUNT(*) FROM WebsiteLogin GROUP BY DATE(login_date)

效果很好,会返回我想要的数据。但是想象一下我的网站在周末很不受欢迎。返回的数据如下所示:

2008-12-10, 100
2008-12-11, 124
2008-12-12, 151
2008-12-15, 141
2008-12-16, 111

缺少 13 号和 14 号,因为没有这些日期的数据。有什么方法可以更改我的查询,以便我获得包含我查询的所有日期的数据。例如

2008-12-10, 100
2008-12-11, 124
2008-12-12, 151
2008-12-13, 0
2008-12-14, 0
2008-12-15, 141
2008-12-16, 111

我想如果我设置一个包含一年中所有日期的表,然后使用左/右联接,我可以做到这一点,但这样做确实很麻烦。

关于在 SQL 中执行此操作的好方法的任何线索?还是以编程方式是我唯一的选择?为任何输入欢呼。

最佳答案

为此,您需要编写一个返回表结果的存储过程。

它会使用一个循环,每天逐步执行并获取计数并将其存储在临时表的一行中,然后将该表作为结果集返回。

这是一个循环的 MS SQL 服务器示例:

http://www.databasejournal.com/features/mssql/article.php/3100621/T-SQL-Programming-Part-2---Building-a-T-SQL-Loop.htm

关于sql - 填补 SQL 查询中的空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355508/

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