假设一个表:
--------------------------------
Col A | Col B | Col C | Col D
--------------------------------
xx xxx xxxx 2000
xx xxx xxxx 3000
xx xxx xxxx 2000
xx xxx xxxx 1450
xx xxx xxxx 1000
xx xxx xxxx 2000
xx xxx xxxx 1000
我希望查询有一列值,表示col D中的值是否在列中具有相同的值,以便
-------------------------------------
Col A | Col B | Col C | Col D | Col E
-------------------------------------
xx xxx xxxx 2000 Y
xx xxx xxxx 3000 N
xx xxx xxxx 2000 Y
xx xxx xxxx 1450 N
xx xxx xxxx 1000 Y
xx xxx xxxx 2000 Y
xx xxx xxxx 1000 Y
让列显示重复数量
会更好-------------------------------------
Col A | Col B | Col C | Col D | Col E
-------------------------------------
xx xxx xxxx 2000 3
xx xxx xxxx 3000 1
xx xxx xxxx 2000 3
xx xxx xxxx 1450 1
xx xxx xxxx 1000 2
xx xxx xxxx 2000 3
xx xxx xxxx 1000 2
答案 0 :(得分:1)
您只需要count(*)
作为窗口函数:
select t.*,
count(*) over (partition by d) as e
from t;