2017-02-09 9 views
0

すなわちyyyymm.I'veは二つのバージョングループ - Postgresqlの

select to_char(to_timestamp(create_dt),'YYYYMM'),count(*) from table_name 
group by to_char(to_timestamp(create_dt),'YYYYMM') 
order by to_char(to_timestamp(create_dt),'YYYYMM') desc 

の下にしようとした私は、int型の列にYYYYMMDD形式で日付を持っていると私は月によってグループに希望します
select to_char(create_dt,'YYYYMM'),count(*) from table_name 
group by to_char(create_dt,'YYYYMM') 
order by to_char(create_dt,'YYYYMM') desc 
+0

? – lurker

+0

@lurkerは、私が投稿した2番目のものに似たクエリを1行だけ持っています。 "YYYYMM"; 733103965列を文字列に変換し、部分文字列を使用して最初の6文字をグループ化しました。 –

答えて

1
select create_dt/100, count(*) 
from t 
group by 1 
order by 1 desc 
limit 6 
+0

いいね!私の答えは間違っていますか? –

+1

@inquisitive_mindあまりにも冗長すぎません。 –

0

どのような代替方法も役立ちます。あなたはこれらのバージョンをしようとしたときに何が起こった

select substring(create_dt::int8,1,6),count(*) from table 
group by substring(create_dt::int8,1,6) 
order by substring(create_dt::int8,1,6) desc 
limit 6; 
+0

int8のsubstrをどのように計画していますか? - は 'substring(create_dt、1,6):: int8'でしょうか? –

関連する問題