2016-12-08 12 views
1
with table1 as 
(
    select CTN_MAIN, SUBS_KEY, BAN_KEY, count(CTN_MAIN) as c 
    from 
    (
    select distinct CTN_MAIN, SUBS_KEY, BAN_KEY 
    from STG_SDB_LOAD SDB 
) 
)select * from table1; 

私は3つのCTN_MAIN、SUBS_KEY、BAN_KEYとCTN_MAINが別々に現れる回数を取得しようとしています。私がちょうどすれば1つの列に異なる値の数を数える

select count(CTN_MAIN) 

私はカウントのメインフィールドを得るが、私は他のカラムも必要とする。私に何ができる?

エラーが

ORA-00937. 00000 - "not a single-group group function" 
*Cause:  
*Action: 
Error at Line: 3 Column: 10 

答えて

1

この

with table1 as 
(
    select CTN_MAIN, SUBS_KEY, BAN_KEY, count(CTN_MAIN) as c 
    from 
    (
    select distinct CTN_MAIN, SUBS_KEY, BAN_KEY 
    from STG_SDB_LOAD SDB 
) group by CTN_MAIN, SUBS_KEY, BAN_KEY 
)select * from table1; 
0

使った分析機能

with table1 as 
(
    select CTN_MAIN, SUBS_KEY, BAN_KEY, COUNT(DISTINCT CTN_MAIN) OVER (PARTITION BY NULL) as c 
    from 
    (
    select distinct CTN_MAIN, SUBS_KEY, BAN_KEY 
    from STG_SDB_LOAD SDB 
) 
)select * from table1; 
を試してみてくださいです
関連する問題