2017-06-20 4 views
0

私のテーブルには、バスの乗り物が異なるネットワークで撮影されています。カウントしグループ化した後に最大IDを見つける

私の目標は、各ネットワークで1日に撮影された乗り物の最大数と各乗り物の1日あたりの乗り物の数を最初に数えてから、ネットワークあたりの最大数 -

YMD - - max_count - 最後に、私は3つの列がありますnetwork_id

を私は以下のクエリを使用しようとしましたが、私は必ずどこかどのようmax()機能を含めることはないです。助言がありますか?

SELECT DISTINCT ON (network_id) 
      network_id, count(*), to_char(start_time, 'YYYY-MM-DD') as YMD 
    FROM routes 
    ORDER BY network_id, count DESC, YMD; 

答えて

0

私は一日乗車数をカウントする集計クエリを使用したい、その後、ウィンドウrankコールを最も乗り物で日付を見つけるために:

SELECT network_id, cnt, ymd 
FROM (SELECT network_id, 
       ymd, 
       cnt, 
       RANK() OVER (PARTITION BY network_id ORDER BY cnt DESC) AS rk 
     FROM (SELECT network_id, 
         TO_CHAR(start_time, 'YYYY-MM-DD') AS ymd, 
         COUNT(*) AS cnt 
       FROM routes 
       GROUP BY network_id, TO_CHAR(start_time, 'YYYY-MM-DD') 
       ) t 
     ) s 
WHERE rk = 1 
+0

おかげで、これはスローエラー: 'エラー:"または "t"の近くの構文エラー –

+0

@the_darkside私は ')'ありがとう、ありがとう。私の答えを編集して問題を修正しました。 – Mureinik

関連する問題