SQL";选择";查询

SQL";选择";查询,sql,select,sqlite,Sql,Select,Sqlite,我相信这很简单,我只是今天喝的咖啡不够 因此,我有一个带有几列的表,如: NAME1 val1 val2 val2 NAME2 val1 val2 val3 第一列中只有大约20个不同的名称,值是实数,但有时会出现重复。我必须为每个不同的名称找到最佳排名行。 排名是通过先按val1排序,然后按val2排序,再按val3排序来完成的 编辑:下面是一个例子: Ben 2.1 1.0 0.6 Ben 0.1 1.0 0.6 Ben 2.1 0.9 0.1 Alice 2.1 0

我相信这很简单,我只是今天喝的咖啡不够

因此,我有一个带有几列的表,如:

NAME1 val1 val2 val2
NAME2 val1 val2 val3
第一列中只有大约20个不同的名称,值是实数,但有时会出现重复。我必须为每个不同的名称找到最佳排名行。 排名是通过先按val1排序,然后按val2排序,再按val3排序来完成的

编辑:下面是一个例子:

Ben    2.1 1.0 0.6
Ben    0.1 1.0 0.6
Ben    2.1 0.9 0.1 
Alice  2.1 0.9 0.1 
Alice  2.0 0.9 0.1 
答案应该是:

Ben    2.1 1.0 0.6
Alice  2.1 0.9 0.1 

您没有太多的文档,除非您提供更多的

查看“desc”以反转排序,否则无法更加精确
select [name],max(val1) as val1,max(val2) as val2,max(val3)as val3 from sql_select group by [name] order by val1 desc, val2 desc, val3 desc; 
select [name],max(val1) as val1,max(val2) as val2,max(val3)as val3 from sql_select group by [name] order by val1 desc, val2 desc, val3 desc;