2

以下のクエリから取得しています

SELECT co.mobility_theme, COUNT(DISTINCT ca.user_id) AS n 
FROM courses_apply AS ca LEFT JOIN dy41s_courses AS co ON ca.course_id = co.id 
WHERE ca.submission IS NULL AND ca.`call` LIKE  '1b' 
GROUP BY co.mobility_theme 
ORDER BY co.mobility_theme ASC 

以下の結果合計 (133)

mobility_theme n

1 =>70

4 =>18

5 =>45

私がやりたいことは次のとおりです。各モビリティ テーマ (1、2、および 5) に対してユーザーを繰り返し使用したため、一意の user_id の合計は (130) である必要があり、(モビリティ テーマ) によって一意の user_id グループを取得できません。ヘルプ?

4

1 に答える 1

3

1 つのアプローチは、モビリティ テーマの 1 つを任意に選択することです。このメソッドは、最小値を持つものを選択します。

select mobility_theme, COUNT(*) as Numusers
from (select ca.user_id, MIN(co.mobility_theme) as mobility_theme
      from courses_apply ca LEFT JOIN
           dy41s_courses co
           ON ca.course_id = co.id 
      WHERE ca.submission IS NULL AND ca.`call` LIKE  '1b' 
      group by ca.user_id
     ) caco
group by mobility_theme
于 2013-05-15T14:27:48.617 に答える