|
MySQL.RU - Webboard
Вернуться
посчитать и вытащить все данные из одной тбл. (Никк) 26/10/2015 - 13:04:03
Re: посчитать и вытащить все данные из одной тбл. (Akina) 26/10/2015 - 21:00:15
Re: посчитать и вытащить все данные из одной тбл. (Никк) 30/10/2015 - 10:52:34
> Original message text:
> From: Никк - 26/10/2015 - 13:04:03
> Subject:посчитать и вытащить все данные из одной тбл.
> -----------------
> Есть таблица вида
>
> nid | sid
> ---------
> 25 | 1
> 25 | 2
> 25 | 3
> 28 | 1
> 28 | 2
> 28 | 3
>
> нужно посчитать сколько каждого sid есть в таблице и при этом получить все значения nid для каждого sid
> То есть примерно следующее
>
> nid | sid | count_sid
> ----------------------
> 25 | 1 | 2
> 25 | 2 | 2
> 25 | 3 | 2
> 28 | 1 | 2
> 28 | 2 | 2
> 28 | 3 | 2
>
> запрос :
> SELECT nid, sid, COUNT(sid) FROM `table` GROUP BY (sid) выдает количество количество сидов, но показывает только один nid.
>
>
>
From: Akina - 26/10/2015 - 21:00:15
Subject:посчитать и вытащить все данные из одной тбл.
-----------------
Какой смысл получения в ОДНОМ наборе данных информации разных уровней группировки?
Нет, решается-то элементарно - подзапросом получить данные высокого уровня
SELECT t1.nid, t1.sid, q1.cnt
FROM `table` t1,
(SELECT t2.sid, COUNT(t2.sid) cnt
FROM `table`
GROUP BY t2.sid) q1
WHERE t1.sid=q1.sid
но смысла-то полученные данные в именно получаемой форме не имеют... куда как правильнее сделать два запроса, получить два наболра данных, а на клиенте уже их комбинировать.
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
43399
|
|