mysql - 如何在 MySQL 查询中汇总每周、每月和每年的金额?

标签 mysql

我有一个订单表。我想在单个查询中获得每周、每月和每年的订单价格总和。我怎样才能做到这一点?

如果我单独查询,这很容易。我的查询是:

SELECT SUM(price) AS weekly_price FROM orders WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK);        
SELECT SUM(price) AS monthly_price FROM orders WHERE date > DATE_SUB(NOW(), INTERVAL 1 MONTH);
SELECT SUM(price) AS yearly_price FROM orders WHERE date > DATE_SUB(NOW(), INTERVAL 1 YEAR);

请帮我写下您的答案:如何在一次查询中获取我的weekly_pricemonthly_priceyearly_price

最佳答案

您可以使用子选择的内部联接

    select t1.weekly_price, t2.monthly_price, t3.yearly_price
    from (  
          SELECT 1 as key, SUM(price) AS weekly_price 
          FROM orders 
          WHERE date > DATE_SUB(NOW(), INTERVAL 1 WEEK) 
    ) t1 
    inner join (      
        SELECT 1 as key, SUM(price) AS monthly_price 
        FROM orders 
        WHERE date > DATE_SUB(NOW(), INTERVAL 1 MONTH)
    ) t2 on t1.key = t2.key
    inner join  ( 
        SELECT 1 as key, SUM(price) AS yearly_price 
        FROM orders 
        WHERE date > DATE_SUB(NOW(), INTERVAL 1 YEAR)
    } t3 on t1.key = t3.key 

关于mysql - 如何在 MySQL 查询中汇总每周、每月和每年的金额?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40744599/

相关文章:

光线转换算法的MySQL实现?

MySQL 数据库重复唯一键

mysql - mysql查询时如何获取时间?

mysql - 如何使用 yii 模型插入 mysql 空间点?

mysql - 从两个表中选择并更新第三个表

mysql - 使用 findAll 函数将选择日期序列化到列之间

php - 组合多个表的搜索

mysql - 如何编写 MySQL 动态数据透视表?

php - 获取后缀表中排名前十的装备

php - 通过 get 传输数据,url 中的 php 和安全性