我有一个订单表。我想在单个查询中获得每周、每月和每年的订单价格总和。我怎样才能做到这一点?
如果我单独查询,这很容易。我的查询是:
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_price
、monthly_price
和 yearly_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/