0

以下のクエリで返される行数を見つけようとしています:

SELECT Count(id) AS fcount, 
       user_id 
FROM   customer_followups 
WHERE  id > 0 
       AND Date(followup_date) >= Str_to_date("24-09-2012", "%d-%m-%y") 
       AND Date(followup_date) <= Str_to_date("24-09-2012", "%d-%m-%y") 
GROUP  BY user_id 
ORDER  BY user_id 

それは私に5行を返します。

ただし、count 関数を使用せずにクエリを実行すると、1 つのレコードしか取得できません。下記参照:

SELECT id, 
       user_id 
FROM   customer_followups 
WHERE  id > 0 
       AND Date(followup_date) >= Str_to_date("24-09-2012", "%d-%m-%y") 
       AND Date(followup_date) <= Str_to_date("24-09-2012", "%d-%m-%y") 
GROUP  BY user_id 
ORDER  BY user_id 

その理由は何ですか?理想的には、カウントは 1 を返す必要があります ??

4

1 に答える 1

1

COUNT条件を満たすグループのレコード数を示します。

The COUNT function is an aggregate function that simply counts all the items that
are in a group.

一方、2番目のクエリでは、そのグループのidとuser_idを見つけるだけです。グループに異なるユーザーIDがある場合は、それらのいずれかを返し、使用できるすべてのuser_id、GROUP_CONCAT()つまりGROUP_CONCAT(user_id)を検索することを忘れないでください。

于 2012-09-24T07:07:56.383 に答える