代码之家  ›  专栏  ›  技术社区  ›  ashish

如何在mysql中获得以下数据集的排名?

  •  0
  • ashish  · 技术社区  · 6 年前

      create table testrank(column_val varchar(10), rank_val integer);
    
      insert into testrank(column_val)
      values
      ('OH3'),
      ('OH3'),
      ('IH3'),
      ('OH1'),
      ('OH1'),
      ('IH1'),
      ('IH1'),
      ('IH3'),
      ('IH3'),
      ('OH3'),
      ('OH3'),
      ('OH3'),
      ('OH3');
    
      Expected result
      column    Rank
       OH3       3
       OH3       3
       IH3       3
       OH1       2
       OH1       2
       IH1       2
       IH1       2
       IH3       1
       IH3       1
       OH3       1
       OH3       1
       OH3       1
       OH3       1
    

    我可以看出数据模式有点不同。在这种情况下,数据顺序不应改变。

    2 回复  |  直到 6 年前
        1
  •  1
  •   AswathyShaji    6 年前

    插入列rank_val的值,然后可以使用以下查询列出该列

    select column_val as column,rank_val as rank from testrank;
    

    您可以使用以下查询对输出进行排序

    select column_val as column,rank_val as rank from testrank order by rank_val desc;
    
        2
  •  0
  •   DataVader    6 年前

    我真的不明白这个问题。你是说这个吗?

    SELECT column_val,
           rank_val AS Rank
    FROM   testrank;
    

    如果您想订购,您可以使用 ORDER BY <expression> [ASC|DESC]