SQL,table 中值实例的顺序
SQL, order of value instance in table
我希望这是一个简单的问题,但我什至不确定如何处理它。假设我有一个 table。我对几列的 table 做了一个 select 声明。我想再添加一个公式列,它将显示指定列中某个值的实例 number/count 出现。基本上这个值已经出现在数据中多少次了。一个例子会让事情变得容易得多。
假设我有 2 个这样的列:
col1 | col2
Orange | mike
Orange | tim
Banana | john
Banana | mike
Orange | jimmy
我需要得到的(基于col1)是这样的:
col1 | col2 | newcol
Orange | mike | 1
Orange | tim | 2
Banana | john | 1
Banana | mike | 2
Orange | jimmy |3
我 运行 在 dashDB 下。然而,我的查询 运行 有 7 个 JOIN 语句,大量的子查询,并且它已经 "group by"'e 了很多其他列。
根据我的检查,DashDB 支持分析函数,所以这应该可以。
select col1,col2,
row_number() over(partition by col1 order by col1,col2 asc ) as newcol
from mytable
order by col1,col2;
希望这会有所帮助
尼克
试试这个,
select col1 , col2 , dense_rank() 在(按 col1 按 col1 排序,col2 asc 分区)作为 newcol 来自 table_info
我希望这是一个简单的问题,但我什至不确定如何处理它。假设我有一个 table。我对几列的 table 做了一个 select 声明。我想再添加一个公式列,它将显示指定列中某个值的实例 number/count 出现。基本上这个值已经出现在数据中多少次了。一个例子会让事情变得容易得多。
假设我有 2 个这样的列:
col1 | col2
Orange | mike
Orange | tim
Banana | john
Banana | mike
Orange | jimmy
我需要得到的(基于col1)是这样的:
col1 | col2 | newcol
Orange | mike | 1
Orange | tim | 2
Banana | john | 1
Banana | mike | 2
Orange | jimmy |3
我 运行 在 dashDB 下。然而,我的查询 运行 有 7 个 JOIN 语句,大量的子查询,并且它已经 "group by"'e 了很多其他列。
根据我的检查,DashDB 支持分析函数,所以这应该可以。
select col1,col2,
row_number() over(partition by col1 order by col1,col2 asc ) as newcol
from mytable
order by col1,col2;
希望这会有所帮助 尼克
试试这个,
select col1 , col2 , dense_rank() 在(按 col1 按 col1 排序,col2 asc 分区)作为 newcol 来自 table_info