如何在mysql中获得以下数据集的排名?
基于以下数据集,如何获得下一列的排名如何在mysql中获得以下数据集的排名?,mysql,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')
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
我可以看出数据模式有点不同。在这种情况下,数据的顺序不应该改变。我真的不理解这个问题。你是说这个吗
SELECT column_val,
rank_val AS Rank
FROM testrank;
如果您想订购,可以使用[ASC|DESC]
如果没有帮助,请描述您想要实现的目标和尝试的内容为列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;
@datavadar:第一列是值,第二列是秩(我必须使用sql代码填充),您想做什么?按特定顺序选择它?是否添加具有计算值的列?还有什么?先生,我是说我有一个列名'column_val',我想用sql代码显示这个列的排名,顺序的排名应该以给定的方式匹配(rank_val),这应该用sql代码生成。这里的'rank for this column'是指“rank_val”中的值,输出中的绝对位置还是什么?你能举个例子说明你得到了什么和你想要得到什么吗?我也不明白这个。为什么“OH3”和“IH3”在结果末尾的排名是1,而在结果开头的排名是3?