В моем запросе выбираются все теги, соответствующие идентификатору пользователя, а затем для каждого тега, проверяется, имеет ли другой конкретный пользователь один и тот же тег (у пользователей есть несколько тегов). Вот то, что я в настоящее время:Получить SUM из нескольких результатов подзапроса
SELECT name as tname,
(
SELECT COUNT(*) FROM tags WHERE tags.name = tname AND user_id = '101'
) as count
FROM tags
WHERE user_id = '102'
Выходной список тегов, с «количество», как 1, если есть совпадение, или 0, если нет совпадения. Это выглядит следующим образом:
+--------+-------+
| tname | count |
+--------+-------+
| Apple | 1 |
| Banana | 1 |
| Orange | 1 |
| Peach | 0 |
| Pear | 1 |
+--------+-------+
Вся информация есть, но я хочу, чтобы получить сумму всех матчей (в данном случае это будет 4). Я будет использовать все это внутри другого запроса, так что я могу иметь запрос следующим образом:
SELECT sum(count) as total_count, class FROM table where count > 3 GROUP BY class
Любая помощь с благодарностью!
UPDATE:
Я в конечном итоге, используя следующий запрос, чтобы получить сумму 4:
SELECT SUM(count) as count
FROM (
SELECT name as tname,
(
SELECT COUNT(*) FROM tags WHERE tags.name = tname AND user_id = '101'
) as count
FROM tags
WHERE user_id = '102'
) as t
Это замечательно, но это только первая половина того, что я хотел достичь , У меня по-прежнему возникают проблемы с завершением этого запроса подсчета внутри другого запроса (чтобы в итоге получить список всех идентификаторов пользователей и соответствующий счетчик). Я закончил использование ответа Hang, потому что он включал минимальные изменения в мой текущий запрос, и я не мог найти способ получить тот же результат, используя ответ Гордона Линоффа (из-за моего непонимания). Мой желаемый результат будет выглядеть примерно так:
+--------+-------+
| id | count |
+--------+-------+
| 102 | 4 |
| 103 | 3 |
| 104 | 7 |
| 105 | 2 |
| 106 | 4 |
+--------+-------+
Я хочу «SELECT ID FROM пользователей», и для каждого пользователя, получить счетчик с помощью обновленного подзапроса, заменив «102» с идентификатором для каждого пользователь. Если то, что я говорю, нуждается в разъяснении, пожалуйста, спросите! Еще раз спасибо за вашу помощь!
Каковы ваши ожидаемые результаты ? Идентификатор пользователя 102 и счетчик 4? – sgeddes