gpt4 book ai didi

sql - 甲骨文 : 'Count over Partition by' output on first row of the keyword alone

转载 作者:行者123 更新时间:2023-12-04 21:11:40 25 4
gpt4 key购买 nike

我必须查询一个如下所示的表。

select count(*) over (PARTITION BY offer_status) as count, name, status
from tablename

输出将是:
3 |姓名 1 |进入
3 |姓名 1 |进入
3 |姓名 2 |清除
1 |姓名 3 |完全的
3 |姓名 3 |清除
3 |姓名 1 |进入
3 |姓名 2 |清除

我想得到它:
3 |姓名 1 |进入
|姓名 3 |进入
3 |姓名 2 |清除
1 |姓名 3 |完全的
|姓名 3 |清除
|姓名 3 |进入
|姓名 3 |清除

仅获取关键字(of status)第一次出现的状态计数,因为没有必要一次又一次地获取计数。

或者你可以建议我任何其他方式来完成它。

最佳答案

我会做这样的事情:

SELECT CASE WHEN rn=1 THEN cnt END cnt, order_name, status
FROM
(
SELECT count(*) OVER (PARTITION BY status) cnt,
ROW_NUMBER() OVER (PARTITION BY status ORDER BY order_name) rn,
order_name,status
FROM input_table
)

SQL Fiddle

正如 Gordon Linoff 所说,您需要某种排序。我按 order_name 对它们进行了排序,但是如果表中有其他字段,则可以改用它。

关于sql - 甲骨文 : 'Count over Partition by' output on first row of the keyword alone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28348382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com