【问题标题】:MySQL count records by months on timestamptMySQL 按时间戳按月计算记录
【发布时间】:2015-04-26 01:55:40
【问题描述】:

我有一个这样的 MySQL 表

Transaction(transaction_id, seller_id, sale_date)

sale_date 是一个时间戳。

我想了解每个卖家在过去三个月中的每个月的销售额。我这样编写查询:

SELECT seller_id, COUNT(*) as num_of_sales
FROM Transaction
WHERE sale_date > '2014-11-30 23:59:59'
GROUP BY seller_id, MONTH(sale_date)

而且我确定结果是无效的,因为我回来了:

seller_id  num_of_sales
2          4829 
5          148 

在我的卖家表中没有 id 为 5 的卖家。谁能指出我正确的方向,好吗?谢谢!

【问题讨论】:

  • 根据您的查询和结果,似乎有一个 id 看起来像“5”的卖家。我确实注意到您按月分组,但不包括 select 中的分组。这似乎很奇怪。
  • 谢谢,这是我的错误。

标签: mysql count group-by timestamp


【解决方案1】:

这是我设法提出的一个有效查询,希望它对某人有用:

SELECT 
  MONTHNAME(sale_date) as d_month,
  seller_id,
  COUNT(*) as num_of_sales      
FROM Transaction
GROUP BY seller_id, d_month 
ORDER seller_id, MONTH(sale_date) asc

【讨论】:

    猜你喜欢
    • 2015-11-06
    • 2020-09-27
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多