gpt4 book ai didi

mysql - SQL查询记录

转载 作者:行者123 更新时间:2023-11-29 09:38:52 24 4
gpt4 key购买 nike

我想编写一个 SQL 查询来获取下面给出的问题解决方案 - 我有一个类似这样的表:

CREATE TABLE order 
(
id INT,
name VARCHAR(255),
income INT,
order_date DATE
)

如果查询有问题,请原谅,但你明白了。

现在我希望 sql 查询给出结果,例如 2017 年第一个订单是在 2016 年创建的用户的总收入。

最佳答案

您的订单表设计似乎很奇怪,但给出了

drop table if exists t;
create table t
(
id INT,
name VARCHAR(255),
income INT,
order_date DATE
);

insert into t values
(1,'aaa',10,'2016-01-01'),(1,'aaa',10,'2017-01-01'),(1,'aaa',10,'2017-01-01'),
(2,'bbb',10,'2015-01-01'),(2,'bbb',10,'2016-01-01'),(2,'bbb',10,'2017-01-01'),
(3,'ccc',10,'2017-01-01'),(3,'ccc',10,'2017-01-01'),(3,'ccc',10,'2018-01-01')
;

一个简单的连接可能就足够了

select t.name,sum(t.income)
from t
join (select name,min(year(order_date)) minyr from t group by name) s
on t.name = s.name
where year(order_date) = 2017 and minyr = 2016
group by name;

+------+---------------+
| name | sum(t.income) |
+------+---------------+
| aaa | 20 |
+------+---------------+
1 row in set (0.00 sec)

关于mysql - SQL查询记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57087096/

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