Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
Есть вот такая вот таблица CREATE TABLE mnnotes ( user_id int4, status int4 DEFAULT 0, ) user_id - не уникальный status = -1|0|+1 Мне нужно вывести строку для конкретного юзера, подсчитав количество одинаковых statusos Вариант типа такого, не работает: SELECT COUNT(status) as s1 FROM mnnotes WHERE user_id = 23 AND status = -1 UNION SELECT COUNT(status) as s2 FROM mnnotes WHERE user_id = 23 AND status = 0 UNION SELECT COUNT(status) as s3 FROM mnnotes WHERE user_id = 23 AND status = 1 Нужно плучить в итоге строчку user_id count>0 count=0 count<0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 18:24 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
Можно попробовать примерно так SELECT user_id ... UNION ALL SELECT user_id, 0 as f1, COUNT(..) as f2, 0 as f3 WHERE ... UNION ALL SELECT user_id, 0 as f1, 0 as f2, COUNT(...) as f3 WHERE ... Всему этому нужно сказать GROUP BY по user_id а для каждого из полей сделать SUM. Можно попробовать придумать более элегантное решение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 20:16 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
Union несколько иначе работает. Он обьединяет по высоте данные. А нужно по ширине. Вот нечто похожее на рабочий вариант, но все же не правильно считает. Но уже правильно выводную строку формирует. SELECT count(distinct mnnotes1.id) as good_notes, count(distinct mnnotes2.id) as neutral_notes, count(distinct mnnotes3.id) as bad_notes FROM mnnotes left outer join mnnotes mnnotes1 on (mnnotes1.status > 0) left outer join mnnotes mnnotes2 on (mnnotes2.status = 0) left outer join mnnotes mnnotes3 on (mnnotes3.status < 0) WHERE mnnotes.user_id=23 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2006, 21:44 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
срочно читать книжки по sql Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 09:06 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
вот то что вам нужно Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 09:22 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
ZemAсрочно читать книжки по sql Код: plaintext 1. 2. 3. Вот это дело совсем не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 11:07 |
|
||
|
Помогите с небольшим запросом.
|
|||
|---|---|---|---|
|
#18+
ZemAвот то что вам нужно Код: plaintext 1. 2. 3. 4. 5. 6. А вот это именно ТО. Только добавить по конкретному юзеру where user_id = 23 Рабочий вариант. Спасибо. Может еще кому пригодится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2006, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2005969]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
131ms |
get topic data: |
11ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 480ms |

| 0 / 0 |
