2

こんにちは、スペイン語のクラスの開始時間と終了時間、日付と教師をリストした表があります。各教師のクラスが最も多い日、最も忙しい日をリストする MYSQL クエリを作成しようとしています。並ぶ日があれば両方見せたいです。

これは私がこれまでに持っているものですが、同点があっても1つの日付しか返されません。これは、最後に教師をグループ化しているためだと感じています

SELECT teacher_no, date
FROM (
   SELECT COUNT(date)AS counted,teacher_no,date
   FROM Spanish
   GROUP BY teacher_no,date
) AS t
GROUP BY teacher_no
4

2 に答える 2

0

内部クエリで日付をカウントする理由がわかりません。開始時間を数えた方が理にかなっていると思います。これにより、各教師が各日に受けたクラス数の表が得られます。

SELECT COUNT(start_time) AS classes, teacher_no, date
FROM Spanish
GROUP BY tearcher_no, date) AS t

特定の teacher_no について、Xクラス数で並べ替えて、クラスが最も多い日付を取得できます。

SELECT date
FROM (        
    SELECT COUNT(start_time) AS classes, date
    FROM Spanish
    GROUP BY date
    WHERE teacher_no = X) AS t
ORDER BY classes DESC
LIMIT 1

最後に、次のような方法ですべての教師のリストを取得できます

SELECT
    a.teacher_no,
    (SELECT date
     FROM
         (SELECT COUNT(b.start_time) AS classes, b.date
          FROM Spanish AS b
          GROUP BY b.date
          WHERE a.teacher_no = b.teacher_no) AS t
     ORDER BY classes DESC
     LIMIT 1) AS date
FROM Spanish AS a
GROUP BY a.teacher_no
于 2012-11-27T20:26:24.653 に答える