SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.07.2009 11:18:17

pavluxa09
Участник
Зарегистрирован: 06.06.2009
Сообщений: 3

Пожалуйста, люди добрые, помогите сделать запрос.

Здравствуйте. Имеется вот такой вот супер мега крутой запрос: SELECT rid, COUNT(*) as count FROM `qop_linkpay` WHERE `status` = 'NEW' GROUP BY rid.

В результате работы этого запроса мне выводится список, колонки которых называются: rid, count.

Мне требуется чтоб оно мне выводило колонки с названиями: rid, count1, count2.
Где count1 - это количество полей с этим rid где type = HOST
А count2 - это количество полей с этим rid, где type = HIT

Заранее спасибо!!!!

Неактивен

 

#2 18.07.2009 11:56:04

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Пожалуйста, люди добрые, помогите сделать запрос.

Прямая дорога или к динамическим счетчикам или:

SELECT `rid`, COUNT(*) as count1 FROM `qop_linkpay` WHERE `status` = 'NEW' AND `type` = 'HOST'
UNION
SELECT COUNT(*) as count2 FROM `qop_linkpay` WHERE `status` = 'NEW' AND `type` = 'HIT'
GROUP BY `rid`


ЗЫ динамическими счетчиками я имел ввиду отдельную табличку или поля, где хранить значения этих COUNT и соотвественно руками (отдельными запросами) менять их значения, когда это нужно, ибо это производительней во многих случаях.

как-то так, даже если не так, я думаю смысл понятен.

Отредактированно Proger (18.07.2009 21:38:34)

Неактивен

 

#3 18.07.2009 12:05:53

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5827

Re: Пожалуйста, люди добрые, помогите сделать запрос.

select if(t1.rid is null, t2.rid, t1.rid) rid, count1, count2 from
(select rid, count(*) count1 from `qop_linkpay` WHERE `status` = 'NEW' and `type`='HOST' GROUP BY rid) t1
left join
(select rid, count(*) count2 from `qop_linkpay` WHERE `status` = 'NEW' and `type`='HIT' GROUP BY rid) t2
on t1.rid=t2.rid;

Неактивен

 

#4 18.07.2009 12:16:16

pavluxa09
Участник
Зарегистрирован: 06.06.2009
Сообщений: 3

Re: Пожалуйста, люди добрые, помогите сделать запрос.

Большое спасибо. Тема закрыта.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson