gpt4 book ai didi

mysql - SQL中按天按位置计数?

转载 作者:行者123 更新时间:2023-11-29 18:22:02 25 4
gpt4 key购买 nike

我有一个交易表,我想为其编写一个查询,用于计算每个位置每天的交易数量。我编写了以下查询,该查询仅计算Where子句中指定的时间段内的总事务数:

    Select Date_Format(T.Date,'%m-%d-%y') as Date, S.StoreLocation, 
Count(S.StoreLocation) as Transactions
From Transactions T
Inner Join Stores S on T.StoreCode=S.StoreCode
Where T.Date Between '2017-08-01 00:00:00' and '2017-08-31 23:59:59'
Group By S.StoreLocation

需要澄清的是,表中的每一行都是一个事务,因此我只需要按位置和按天计算行数。我希望这样做,因为我需要按地点按天计算这些交易,这些交易可以追溯到多年前,这将是数千万笔交易。

我希望输出数据看起来像这样:

日期 | 商店位置 | 交易
2017 年 8 月 1 日 |位置 1 | 500
2017 年 8 月 2 日 |位置 1 | 450
2017 年 8 月 3 日 |位置 1 | 600

...对于 100 多个位置和指定时间段中的每一个位置,依此类推。

另请注意,我们的日期以“2017-08-01 00:00:00”格式列在表中,这就是为什么我在查询中更改其格式以仅按天显示。我想做的事情可能吗?我将不胜感激的帮助。

最佳答案

你已经快到了,你所缺少的只是GROUP BY中的日期当您编写这样的 SQL 脚本时,您的问题实际上提供了答案

counts the number of transactions for each location by day

  1. 计算交易数量是您的聚合函数COUNT(S.StoreLocation)
  2. 对于每个位置是第一个 GROUP BY 子句
  3. by day 是第二个 GROUP BY 子句。

.

SELECT   Date_Format(T.Date,'%m-%d-%y') AS Date
,S.StoreLocation
,COUNT(S.StoreLocation) AS Transactions
FROM Transactions T
INNER JOIN Stores S
ON T.StoreCode = S.StoreCode
WHERE T.Date BETWEEN '2017-08-01 00:00:00' AND '2017-08-31 23:59:59'
GROUP BY S.StoreLocation
,Date_Format(T.Date,'%m-%d-%y')

可以在这里找到一个工作示例:SQL Fiddle

关于mysql - SQL中按天按位置计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46496351/

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