【问题标题】:MS SQL : Create GROUP BY statementMS SQL:创建 GROUP BY 语句
【发布时间】:2021-08-26 17:57:35
【问题描述】:

需要根据日期从表中查找记录数。

列被声明为 date 。例如。 2021-06-09 17:25:18.987

每一秒都有多条记录插入到表中。

请给我一个查询,以使用 group by 子句 yyyy-mm-dd 查找每个日期的总记录。

示例表

Name, registertime
A      2021-06-09 17:25:18.987
B      2021-06-01 15:25:18.987
A      2021-05-09 17:25:18.987
B      2021-06-01 17:25:18.987
A      2021-06-02 17:25:18.987
B      2021-06-03 17:25:18.987
A      2021-06-03 17:25:18.987
B      2021-06-03 17:25:18.987

预期结果

Date.                  Count
2021-05-09        1
2021-06-01        2
2021-06-02        1
2021-06-03        3
2021-06-09        1

【问题讨论】:

  • Group by 是一个很好的起点。你试过什么?如果您添加一些示例数据、示例代码和您当前/所需的输出 - 您将更有可能得到响应
  • “请给我一个查询” Stack Overflow 不是免费的编码服务。 试图解决什么问题?为什么你的尝试没有成功? 做了什么来尝试调试失败的尝试?
  • 请提供您迄今为止尝试过的内容。然后人们将帮助您更正/改进您的查询。但是,它不是一个无需尝试即可获得答案的平台。

标签: sql sql-server group-by count


【解决方案1】:

您可以简单地将您的列转换为日期,然后使用 group by

select cast(date_column as date) ,count(*)
from yourtable
group by cast(date_column as date)
order by cast(date_column as date);

上面的查询将为每一天创建一行,其中包含当天的计数并按日期升序排列。

【讨论】:

    【解决方案2】:

    我不确定这是否能解决您的问题,但您可以试试这个: SELECT COUNT(*) AS HOW_MANY_TIMES, date_column FROM your_table group by date_column;

    【讨论】:

    • 感谢您的努力。但它不应该工作。您可能会错过该列是日期时间的,并且 OP 只需要按日期对数据进行分组。
    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 2020-04-01
    • 2017-08-08
    • 2011-01-28
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2021-02-03
    相关资源
    最近更新 更多