1

このクエリでは、重複する家庭教師IDを削除してカウントする必要があります。

SELECT COUNT(t.tutor_id) FROM tutors AS t
    INNER JOIN tutor_category_subject as tcs ON t.tutor_id = tcs.tutor_id   
    INNER JOIN subject AS s ON tcs.subject_id = s.subject_id
WHERE s.subjects LIKE '%business%' 

これはクエリ出力です:

+-------------------+
| COUNT(t.tutor_id) |
+-------------------+
|                 6 |
+-------------------+

しかし、それは4でなければなりません。なぜ家庭教師IDが3、6、15、15、16、16であるのか

4

2 に答える 2

2

使用するdistinct

SELECT COUNT(DISTINCT t.tutor_id) FROM tutors AS t
    INNER JOIN tutor_category_subject as tcs ON t.tutor_id = tcs.tutor_id   
    INNER JOIN subject AS s ON tcs.subject_id = s.subject_id
WHERE s.subjects LIKE '%business%' 
于 2012-11-01T03:11:48.237 に答える
0

たとえば、「total」というエイリアスをカウントのある列に配置し、クエリの最後にGROUPBYの合計を追加します。

于 2012-11-01T03:14:40.873 に答える