gpt4 book ai didi

mysql - 如何将两个不存在的 sql 组合起来?

转载 作者:行者123 更新时间:2023-11-28 23:38:49 26 4
gpt4 key购买 nike

我怀疑它能不能解决。

测试表:

id       |  name   |  value  |  date
---------|---------|---------|------------
1 | john | 32 | 2016-01-08
2 | tom | 590 | 2016-01-03
3 | king | 1903 | 2016-01-01
4 | john | 490 | 2016-01-02
5 | gary | 58 | 2016-01-18
6 | cat | 5 | 2016-01-10

sql1:

select name,sum(value) as val from test_table where val > 500 group by name;

sql2:

select name from test_table where  date >= DATE_SUB(CURDATE(),INTERVAL 1 WEEK) group by name;

我想将两个 sql 合二为一。 sql2名称结果集合中不存在sql结果名称。

更新:

对不起我的困惑描述。

sql1是全表扫描,目的是找出谁的总值大于500。

sql2是扫描上周的数据,找出上周有谁。

所以,我想结合两个 sql ,找出那些总值大于 500 但上周不存在的人。

再次为我糟糕的英语感到抱歉。

更新 - 添加示例:

就像表格内容一样,结果应该是:

约翰,汤姆,国王

因为他们的总值(value)>500,但上周没有更新

但是我该怎么做。

谢谢大家。

最佳答案

SELECT name, sum(value)
FROM test_table
WHERE value > 500
AND name NOT IN (
SELECT name
FROM test_table
WHERE `date` >= DATE_SUB(CURDATE(), INTERVAL 1 WEEK)
)
GROUP BY 1

SELECT name, sum(value)
FROM test_table
WHERE value > 500
GROUP BY 1
HAVING max(`date') < DATE_SUB(CURDATE(), INTERVAL 1 WEEK)

如果你想让 sum(value) > 500,删除上面的行

WHERE value > 500

并将第一个 SQL 的 AND 更改为 WHERE

并在上面每一行的末尾添加这一行:

having sum(value) > 500

关于mysql - 如何将两个不存在的 sql 组合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938634/

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