gpt4 book ai didi

MySQL:是否可以通过单个查询来做到这一点?

转载 作者:可可西里 更新时间:2023-11-01 07:57:14 25 4
gpt4 key购买 nike

我正在尝试在单个查询中执行两个不同的 SUM。

user   points   date_achieved
-----------------------------
Foo 10 2000-01-01
Foo 20 2011-11-18
Bar 10 2000-01-01
Bar 20 2011-11-15
Bar 30 2011-11-18

1)总分

SELECT user, SUM(points) AS points_total
FROM myTable
GROUP BY user

2) 过去一个月内累积的积分

SELECT user, SUM(points) AS points_month
FROM myTable
WHERE date_achieved >= CURRENT_DATE - INTERVAL 1 MONTH
GROUP BY user

使用单个查询实现此目的的最佳方法是什么?

非常感谢。

最佳答案

只需使用 case 语句,仅在满足您的条件时才计分。

SELECT 
user,
SUM(points) AS points,
SUM(case
when date_achieved >= (CURRENT_DATE - INTERVAL 1 MONTH)
THEN points
else 0 END) points_last_Month
FROM myTable
GROUP BY user

关于MySQL:是否可以通过单个查询来做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189731/

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