Групировка по двум таблицам - MySQL

Узнай цену своей работы

Формулировка задачи:

Добрый день. Подскажите как составить верный запрос. Есть таблица users где много инфы о пользователе, возьмем основную id_user first_name gender Вторая таблица visits Где содержится информация о посещениях пользователей у определенных клиентов. id_visit id_user id_client Соответственно в таблице visits много визитов одного id_user и у разных клиентов. Нужно выбрать сколько мужчин gender = 1 и сколько женщин gender = 2 среди всех visits у определенного id_client например id_client = 12 SELECT users.gender, COUNT(*) FROM `users` LEFT JOIN vizits ON vizits.id_user = users.id_user WHERE vizits.id_client='12' AND users_hotspot.gender!=0 GROUP BY users.gender Данным запросом он суммирует все id_user, то есть не уникальных пользователей показывает а дубли тоже считает. А если делать GROUP BY vizits.id_user тогда не собирает в две колонки как при первом запросе sex COUNT(*) 1 45836 2 34267

Решение задачи: «Групировка по двум таблицам»

textual
Листинг программы
SELECT
 gender,
 COUNT(*) AS COUNT
FROM users
WHERE id_user IN (SELECT DISTINCT id_user FROM vizits WHERE id_client='12')
GROUP BY gender

Объяснение кода листинга программы

  1. Код написан на SQL (Structured Query Language), который используется для работы с реляционными базами данных.
  2. Код выполняет группировку данных по полу пользователей (gender).
  3. В подзапросе используется оператор DISTINCT для получения уникальных значений id_user из таблицы vizits, где id_client равен 12.
  4. В основном запросе используется оператор COUNT(*) для подсчета количества пользователей каждого пола.
  5. Результатом выполнения запроса будет список, содержащий два элемента: пол пользователя и количество пользователей этого пола.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы