#sql #sql-server
#sql #sql-сервер
Вопрос:
итак, у меня эта проблема. В моей базе данных есть две таблицы, которые выглядят примерно так:
Table A:
============================
Username Group Number
============================
mike 1
john 1
stan 2
mark 2
============================
Table B:
========================================
Username FeatureA FeatureB FeatureC
----------------------------------------
mike Yes Yes
john Yes
stan Yes Yes
mark Yes Yes
========================================
Таблицы A и B объединяются по имени пользователя, и мне нужно что-то, что выглядит следующим образом:
============================================
Group Number FeatureA FeatureB FeatureC
============================================
1 1 1 1
2 1 1 2
============================================
В принципе, мне нужно подсчитать количество пользователей в каждой группе, которые имеют доступ к каждой функции.
Комментарии:
1.
FeatureX
является ли текстовый тип столбцом?
Ответ №1:
Попробуйте это
SELECT a.`Group Number`,
SUM(CASE b.FeatureA WHEN 'Yes' THEN 1 ELSE 0 END) AS FeatA,
SUM(CASE b.FeatureB WHEN 'Yes' THEN 1 ELSE 0 END) AS FeatB,
SUM(CASE b.FeatureC WHEN 'Yes' THEN 1 ELSE 0 END) AS FeatC
FROM tableA a JOIN tableB b
ON a.username = b.username
GROUP BY a.`Group Number`
Комментарии:
1. Разве это не должно быть сгруппировано по
group number
?2. @PiotrAuguscik: это так… может быть, вы покрасили сообщение, пока я его редактировал 🙂