我有一个看起来像这样的数据集( myDataset.csv )
.png
...等等,对于许多其他用户/值
我想找到每个用户的Min和Max值,但是我很难通过SQL查询来做到这一点。
我解决了这个问题,仅查询了一个用户(例如Alice)的所有行,以获取AliceDataset.csv,然后运行此查询以查找其最小值和最大值。所以我知道如何获得最小和最大。
User Value
Alice 2
Alice 4
Alice 3
Bob 9
Bob 7
Bob 8
但是如何在myDataset.csv 中循环遍历 all 个用户,并为每个用户找到其最小值和最大值(甚至可能使用显示的该查询中的代码)以上)
答案 0 :(得分:2)
使用max()
和min()
函数,您必须使用group by来获取每个用户的最大值和最小值
select User , max(Value) mx_val,min(Value) min_val
from your_table
group by User
答案 1 :(得分:1)
使用分组依据和汇总-这将为您提供明智的最小值和最大值
SELECT user, MIN(Value) as minval, MAX( Value) as maxval
FROM AliceDataset
group by user
答案 2 :(得分:1)
聚集函数通常用于返回单个值。如果要select
的任何具有聚合功能的列,则需要添加带有要在select
结果中添加的列名的group by子句。
因此,在您的情况下,您想在结果中使用value
上的聚合函数,并且还想用User
显示值函数结果,因此您需要使用{{1 }}。
因此查询将是:
User
注意:
如果要在使用聚合函数时添加条件,则需要使用select User,
max(Value) as "Maximum Value",
min(Value) as "Minimum Value"
from AliceDataset
group by User
而不是having
。
例如:
where