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

时间:2018-08-21 10:31:10

标签: mysql

基于下面的数据集,如何在下一列中获得排名?

  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 个答案:

答案 0 :(得分:2)

插入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;

答案 1 :(得分:0)

我不太了解这个问题。你是这个意思吗?

SELECT column_val,
       rank_val AS Rank
FROM   testrank;

如果要订购,可以使用ORDER BY <expression> [ASC|DESC] 如果这样做没有帮助,请描述您要实现的目标和尝试的目标