Sql 某些行的最小值和最大值

Sql 某些行的最小值和最大值,sql,Sql,我有一个数据集(myDataset.csv)如下所示 User Value Alice 2 Alice 4 Alice 3 Bob 9 Bob 7 Bob 8 。。。对于许多其他用户/价值观,也是如此 我希望找到每个用户的最小值和最大值,但我很难通过SQL查询实现这一点 我将问题分解,只为一个用户(比如Alice)查询所有行以获取AliceDataset.csv,然后运行此查询以查找她的最小值和最大值。所以我知道如何得到最小

我有一个数据集(myDataset.csv)如下所示

User      Value
Alice     2
Alice     4
Alice     3
Bob       9
Bob       7
Bob       8
。。。对于许多其他用户/价值观,也是如此

我希望找到每个用户的最小值和最大值,但我很难通过SQL查询实现这一点

我将问题分解,只为一个用户(比如Alice)查询所有行以获取AliceDataset.csv,然后运行此查询以查找她的最小值和最大值。所以我知道如何得到最小值和最大值

SELECT MIN(AliceDataset.value), MAX(AliceDataset.value)
FROM AliceDataset

但是,我如何在myDataset.csv中的所有用户中循环,并为每个用户找到他们的最小值和最大值(甚至可能使用上面提供的查询代码)

使用分组依据和聚合-这将为您提供用户方面的最小值和最大值

SELECT user, MIN(Value) as minval, MAX( Value) as maxval
FROM AliceDataset
group by user

使用分组和聚合-这将为您提供用户方面的最小值和最大值

SELECT user, MIN(Value) as minval, MAX( Value) as maxval
FROM AliceDataset
group by user
使用
max()
min()
函数,您必须使用group by来获取每个用户的最大值和最小值

select User , max(Value) mx_val,min(Value) min_val
from your_table
group by  User 
使用
max()
min()
函数,您必须使用group by来获取每个用户的最大值和最小值

select User , max(Value) mx_val,min(Value) min_val
from your_table
group by  User 

聚合函数主要用于返回单个值。如果要
选择任何具有聚合函数的列,则需要使用要在
选择
结果中添加的列名添加group by子句

因此,在您的情况下,您希望在结果中对
value
使用聚合函数,并且还希望使用
User
显示带值函数的结果,因此您需要使用
User
添加子句group by

因此,查询将是:

select User,
       max(Value) as "Maximum Value",
       min(Value) as "Minimum Value"
from AliceDataset
group by User
注:
如果要在使用聚合函数时添加条件,则需要使用
having
而不是
where

例如:

select User,
       max(Value) as "Maximum Value",
       min(Value) as "Minimum Value"
from AliceDataset
group by User
having max(Value) > 3

聚合函数主要用于返回单个值。如果要
选择任何具有聚合函数的列,则需要使用要在
选择
结果中添加的列名添加group by子句

因此,在您的情况下,您希望在结果中对
value
使用聚合函数,并且还希望使用
User
显示带值函数的结果,因此您需要使用
User
添加子句group by

因此,查询将是:

select User,
       max(Value) as "Maximum Value",
       min(Value) as "Minimum Value"
from AliceDataset
group by User
注:
如果要在使用聚合函数时添加条件,则需要使用
having
而不是
where

例如:

select User,
       max(Value) as "Maximum Value",
       min(Value) as "Minimum Value"
from AliceDataset
group by User
having max(Value) > 3

你用的是什么产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加一个“
postgresql
”、
oracle
sqlserver
db2
”、…可能是@a_horse_的重复项,名称为“\u no\u”。我正在使用的data.world具有sql查询工具。我刚才试着查看它使用的是哪种DBMS,但我不太确定该如何查找,您使用的是哪种产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加一个“
postgresql
”、
oracle
sqlserver
db2
”、…可能是@a_horse_的重复项,名称为“\u no\u”。我正在使用的data.world具有sql查询工具。我刚才试着查看它使用了哪些DBMS,但我不太确定该如何查找