gpt4 book ai didi

sql - 没有循环的SQL的最佳解决方案

转载 作者:行者123 更新时间:2023-12-02 01:55:26 25 4
gpt4 key购买 nike

我对 SQL 比较陌生,正在尝试找到解决此问题的最佳方法。

我正在尝试从 2 个表中获取数据并开始将它们合并在一起以对其进行分析,但我不知道在没有循环或许多嵌套子查询的情况下执行此操作的最佳方法。

到目前为止我做了什么:我有 2 张 table 。表1是用户信息,表2是订单信息(价格和日期,以及用户)

我需要做的:我希望每个用户都有一行,其中包含有关他们所有订单的信息摘要。我正在查找每个用户所有订单的价格总和、该用户支付的最高价格以及订单数量。我不确定如何最好地在 SQL 中操作我的数据。

目前,我的代码如下所示:

Select alias1.*, Table2.order_id, Table2.price, Table2.order_date
From (Select * from Table1 where country='United States') as alias1
LEFT JOIN Table2
on alias1.user_id = Table2.user_id

这会按国家/地区筛选出数据类型,然后将其与用户结合起来,创建包含用户信息的每个订单的记录。我不知道这是否有帮助,但这是我第一次尝试处理数据的一部分。我正在考虑对此进行循环,但我知道这有悖于 SQL 的精神

编辑:这是我所拥有的和我想要的示例:

表1(用户信息):

user_id    user_country
1 United States
2 United Kingdom
(etc)

表2(订单信息):

order_id    price    user_id
100 5.00 1
101 3.50 2
102 2.50 1
103 1.00 1
104 8.00 2

我想要的输出:

user_id    user_country      total_price   max_price    number_of_orders
1 United States 8.50 5.00 3
2 United Kingdom 11.50 8.00 2

最佳答案

这是一种方法:

SELECT    alias1.user_id, 
MAX(alias1.user_name) As user_name,
SUM(Table2.price) As UsersTotalPrice,
MAX(Table2.price) As UsersHighestPrice
FROM Table1 As alias1
LEFT JOIN Table2 ON alias1.user_id = Table2.user_id
WHERE country = 'United States'
GROUP BY user_id

如果您可以给我们实际的表定义,那么我们可以向您展示一些实际的工作查询。

关于sql - 没有循环的SQL的最佳解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20409221/

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