mysql按周分组

标签 mysql sql aggregate-functions

我有一个包含以下字段的表:

  • 编号
  • 销售额
  • the_date(unix 时间戳整数)
  • payment_type(可以是现金,或账户)

我正在尝试创建一个查询,该查询将按一年中的每周对所有销售额进行分组,然后在我的页面上拆分每周的 amount_sales 总和。

例子:

week 1 = $26.00  
week 2 = $35.00  
week 3 = $49.00

等我正在使用此查询,但它不起作用:

  SELECT SUM(`amount_sale`) as total 
    FROM `sales` 
   WHERE `payment_type` = 'Account' 
GROUP BY WEEK(`the_date`)

最佳答案

如果将 the_date 存储为整数,首先需要使用 FROM_UNIXTIME 函数将其转换为日期时间:

 SELECT SUM(`amount_sale`) as total 
FROM `sales` 
WHERE `payment_type` = 'Account' 
GROUP BY WEEK(FROM_UNIXTIME(`the_date`))  

更新:
此外,您可能想要输出周数,

SELECT CONCAT('Week ', WEEK(FROM_UNIXTIME(`the_date`))) as week_number,
SUM(`amount_sale`) as total 
FROM `sales` 
WHERE `payment_type` = 'Account' 
GROUP BY WEEK(FROM_UNIXTIME(`the_date`))

关于mysql按周分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710342/

相关文章:

sql - 查询从具有 2 个 ID 列的表中获取名称

sql - 在 postgres 中嵌套加入聚合

sql - 除了主要条件,如何获取特定条件下的Count?

c# - 将数据插入数据 GridView c#

mysql - 将二进制 SHA1 哈希存储到 mySQL BINARY(20) 列中

java - JPA:如何设置 MySQL session 变量?

mysql - #1066 - 不唯一的表/别名 : 'examination'

PHP 不将数据库打印为表

php - 如果我需要为其他表获取主 ID,如何插入

sql - 是否可以以这种方式使用 AGG 函数的 SQL 查询?