2017-03-20 7 views
0

最大カウント(r.customer_id)を計算する方法を見つけようとしています。スクリプトを実行すると、同じ最高値を持つ4つの値がありますので、私は生成する必要があることは、これらの4つの値PostgreSQLカウントの最大値を計算する方法

SELECT  c1.customer_id, c1.first_name, c1.last_name, count(r.customer_id) 
FROM  customer c1 
INNER JOIN rental r 
ON   (c1.customer_id = r.customer_id) 
WHERE  r.staff_id = 2 
GROUP  BY c1.customer_id, c1.first_name, c1.last_name 
ORDER BY 4 desc 

答えて

0
SELECT customer_id, first_name, last_name, count 
     FROM (
     SELECT c1.customer_id as customer_id, c1.first_name as first_name, c1.last_name as last_name, count(r.customer_id) as count 
     FROM customer c1 
     INNER JOIN rental r ON (c1.customer_id = r.customer_id ) 
     WHERE r.staff_id = 2 
     GROUP BY c1.customer_id, c1.first_name, c1.last_name 
    ) x 
    GROUP BY customer_id, first_name, last_name 
    HAVING count = max(count) 
    order by 4 desc 
+0

を持つテーブルである私は、あなたのスクリプトを実行するとき、あなたの迅速な対応ありがとうございました、それは述べています:ERROR:HAVINGの引数は型booleanでなければならないbigint LINE 9:)x最大値(count) ^ **********エラー********* エラー:HAVINGの引数は型booleanでなければならないbigint型 SQLの状態:42804 文字:392 – sotokan80

+0

ye、それは条件でなければならない答えを – cur4so

+0

今私は得る:エラー:列 "x.customer_id"は、GROUP BY句に表示するか、集計関数で使用する必要があります 行1:SELECT customer_id、first_name、last_name、カウント ^ ***** *****エラー********** エラー:列 "x.customer_id"はGROUP BY句に表示するか、集計関数で使用する必要があります SQLの状態:42803 文字:9 – sotokan80

関連する問題