SQL-如何检索在另一列中有多个重复行的列上具有最高等级的行

笑脸维生素C

我对SQL还是很陌生,所以这可能是一个菜鸟问题:

假设我的查询是:

select [Item], [Answers] from table1

并检索下表:

Item     Answers
------------------
Car      Expensive
Car      Cheap
Car      Medium
Boat     Expensive
Boat     Very Expensive
Boat     Ultra Expensive

给定特定的第二张桌子(或字典,我真的不知道该怎么做){便宜:1,中:2,昂贵:3,非常昂贵:4,超昂贵:5}-表示“超昂贵”是最高等级,而“便宜”是最低等级。

在SQL中,对于这种在A列(项目)中有很多重复项的表,如何为A列中的每个唯一值检索B列(答案)中的最高排名值?

在这个例子中,我想得到:

Item     Answers
------------------
Car      Expensive
Boat     Ultra Expensive

在“项目”列中每个重复的值中只有一个,在“答案”中其排名最高的可能值是?

专线小巴

您可以使用相关子查询:

select item, answer
from table1 t
where answer = (
    select top 1 answer
    from table1 t1
    where t1.item = t.item
    order by
        case answer
            when 'Cheap' then 1
            when 'Medium' then 2
            when 'Expensive' then 3
            when 'Very Expensive' then 4
            when 'Ultra Expensive' then 5
        end desc
)

子查询使用条件子句和过滤answer具有给定最高排名的的子查询itemorder bytop 1

另一个选择是row_number()用于过滤:

select item, answer 
from (
    select 
        item, 
        answer,
        row_number() over(
            partition by item 
            order by case answer
                when 'Cheap' then 1
                when 'Medium' then 2
                when 'Expensive' then 3
                when 'Very Expensive' then 4
                when 'Ultra Expensive' then 5
            end desc
        ) rn
    from table1
) t
where rn = 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获取在SQL Server的另一列上具有多个值的行?

来自分类Dev

SQL选择一列中具有重复值的所有行

来自分类Dev

T-SQL选择重复的行,其中至少一列具有值

来自分类Dev

sql:使用单个查询在另一列中选择具有相同列值的行

来自分类Dev

SQL-查找一列的重复项但在另一列中有所不同

来自分类Dev

SQL-计算在另一列中有多个输入的用户

来自分类Dev

尝试根据另一列 SQL 中的 vlue 更新具有不同值的新列的行

来自分类Dev

SQL查询的结果中有重复的行

来自分类Dev

SQL查询以选择记录在其中一列中值为= 0且在另一列中具有唯一ID的行

来自分类Dev

SQL 显示具有相同一列值的行分组的行

来自分类Dev

如何根据另一列 SQL 中的值创建具有计数值的新列

来自分类Dev

SQL选择在另一列中具有至少一个特定值的所有非唯一行

来自分类Dev

在标准SQL中,如何选择行,以便对于一列中的每个唯一值,另一列中的所有值都是指定值?

来自分类Dev

在标准SQL中,如何选择行,以便对于一列中的每个唯一值,另一列中的所有值都是指定值?

来自分类Dev

SQL查询:检索具有一个列的每个唯一值的条目的行

来自分类Dev

SQL-如何插入具有同一列的多个值的记录?

来自分类Dev

在同一列上具有2个INNER JOIN的SQL不起作用

来自分类Dev

SQL Server:在另一列中显示带有数字的相似行

来自分类Dev

同一列上有多个SQL过滤器

来自分类Dev

SQL Server:在一列上有多个选择语句

来自分类Dev

在SQL中查找具有文本的列类型的重复行

来自分类Dev

在SQL中,如何通过查找与列相等的所有行来更新表的每一行,然后将另一列设置为彼此相等

来自分类Dev

当T-SQL中的另一行<>'X'时,检索具有最新日期的数据行

来自分类Dev

无法根据SQL Server中另一列的条件从列中检索不同的行

来自分类Dev

熊猫-从另一列中删除具有最高价值的重复行

来自分类Dev

oracle sql 一列中有两列

来自分类Dev

SQL SELECT列上具有MAX值的行,并返回所有列

来自分类Dev

如何从另一列中查找值并检查其是否重复,然后在Oracle SQL中删除行

来自分类Dev

如何使用join和group by检索同一列的具有不同计算值的sql结果?

Related 相关文章

  1. 1

    如何获取在SQL Server的另一列上具有多个值的行?

  2. 2

    SQL选择一列中具有重复值的所有行

  3. 3

    T-SQL选择重复的行,其中至少一列具有值

  4. 4

    sql:使用单个查询在另一列中选择具有相同列值的行

  5. 5

    SQL-查找一列的重复项但在另一列中有所不同

  6. 6

    SQL-计算在另一列中有多个输入的用户

  7. 7

    尝试根据另一列 SQL 中的 vlue 更新具有不同值的新列的行

  8. 8

    SQL查询的结果中有重复的行

  9. 9

    SQL查询以选择记录在其中一列中值为= 0且在另一列中具有唯一ID的行

  10. 10

    SQL 显示具有相同一列值的行分组的行

  11. 11

    如何根据另一列 SQL 中的值创建具有计数值的新列

  12. 12

    SQL选择在另一列中具有至少一个特定值的所有非唯一行

  13. 13

    在标准SQL中,如何选择行,以便对于一列中的每个唯一值,另一列中的所有值都是指定值?

  14. 14

    在标准SQL中,如何选择行,以便对于一列中的每个唯一值,另一列中的所有值都是指定值?

  15. 15

    SQL查询:检索具有一个列的每个唯一值的条目的行

  16. 16

    SQL-如何插入具有同一列的多个值的记录?

  17. 17

    在同一列上具有2个INNER JOIN的SQL不起作用

  18. 18

    SQL Server:在另一列中显示带有数字的相似行

  19. 19

    同一列上有多个SQL过滤器

  20. 20

    SQL Server:在一列上有多个选择语句

  21. 21

    在SQL中查找具有文本的列类型的重复行

  22. 22

    在SQL中,如何通过查找与列相等的所有行来更新表的每一行,然后将另一列设置为彼此相等

  23. 23

    当T-SQL中的另一行<>'X'时,检索具有最新日期的数据行

  24. 24

    无法根据SQL Server中另一列的条件从列中检索不同的行

  25. 25

    熊猫-从另一列中删除具有最高价值的重复行

  26. 26

    oracle sql 一列中有两列

  27. 27

    SQL SELECT列上具有MAX值的行,并返回所有列

  28. 28

    如何从另一列中查找值并检查其是否重复,然后在Oracle SQL中删除行

  29. 29

    如何使用join和group by检索同一列的具有不同计算值的sql结果?

热门标签

归档