我必须查询一个如下所示的表。
select count(*) over (PARTITION BY offer_status) as count, name, status
from tablename输出将为:
3.自愿的,自愿的,可接受的
3.自愿的,自愿的,可接受的
3.cleared=‘cleared 3’>商业合同.
1/2.=
3.cleared=‘cleared 2’>_
3.自愿的,自愿的,可接受的
3.cleared=‘cleared 3’>商业合同.
我想把它写成:
3.自愿的,自愿的,可接受的
商业、商业、金融、商业、商业、金融、商业、金融、商业等行业
3.cleared=‘cleared 3’>商业合同.
1/2.=
C.C=
商业、商业、金融、商业、商业、金融、商业、金融、商业等行业
C.C=
只对关键字(状态)的第一次出现获得状态计数,因为不需要一次又一次地获取计数。
或者你可以建议我做任何其他的事情。
发布于 2015-02-05 21:25:38
我会做这样的事情:
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
就像戈登·林诺夫说的,你需要一些命令。我通过order_name订购了它们,但是如果表中还有其他字段,则可以使用它。
https://stackoverflow.com/questions/28348382
复制相似问题