Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.21;
Скачать: CL | DM;

Вниз

sql-запрос   Найти похожие ветки 

 
Андреевич   (2012-12-24 09:10) [0]

Подскажите, как сделать такую штуку. Есть запрос, примерно такой:
select cct.id,cct.value from (
   select id,value from sometable
) cct

как мне в этом запросе вернуть количество(сумму,avg и тп) по полю value если оно больше значения и если меньше значения? (допустим 100). результат cct - довольно ресурсоемкий запрос, процедуры нет (т.е. в один запрос все делается)


 
O'ShinW ©   (2012-12-24 09:16) [1]

having?


 
Андреевич   (2012-12-24 09:20) [2]

спасибо посмотрю, но уточню, что нужно примерно следующее:

select cct.id, count(cct.value>100), count(cct.value<100) from (
  select id,value from sometable
) cct
group by ..

с heaving не тоже самое, что добавить where cct.value>100? (тогда значения ниже не отберутся)


 
O'ShinW ©   (2012-12-24 09:31) [3]

не..
having - условие на уже сгруппированные данные


 
O'ShinW ©   (2012-12-24 09:33) [4]

>   select id, Count(value) from sometable
group by id
having Count(value) > 100
в выборке данные, которые после группировки больше 100

в принципе ,аналогично

select * from (
select id, Count(value) CNT from sometable
) A
where A.CNT > 100


 
Андреевич   (2012-12-24 09:40) [5]


> в принципе ,аналогично

ну этот запрос вернет кол-во только для A.CNT > 100? :) а мне надо кол-во и для того что меньше, и для того что больше.

вроде получилось делать через case


 
Андреевич   (2012-12-24 09:50) [6]

в смысле так:
select sum(case when cct.value>100 then 1 else 0 end), sum(case when cct.value<100 then 1 else 0 end) from (
 select id,value from sometable
) cct


 
ДИСА   (2012-12-24 10:12) [7]

А равно 100 не нужно что ли ?


 
Андреевич   (2012-12-24 10:15) [8]

ну это уже детали, is null тоже проверяется.
специально не указывал это в запросе, чтобы небыло желания сделать >100 и all-count(value>100) :) т.е. условия могут даже пересекаться


 
знайка   (2012-12-24 11:46) [9]


> в смысле так:
зачем подзапрос?


 
Компромисс1   (2012-12-24 13:18) [10]

Можно еще так:

select (select count(*) from mytable where value >= 100), (select count(*) from mytable where value < 100) from table_with_one_row


 
antonn ©   (2012-12-24 22:21) [11]


> зачем подзапрос?

в нем группировки из нескольких таблиц



Страницы: 1 вся ветка

Текущий архив: 2013.04.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
15-1355940061
O'ShinW
2012-12-19 22:01
2013.04.21
Юзал ли кто Cach&amp;#233;, и не даст ли ссылки на Курс молодого бойца?


9-1194534206
NetSkipper
2007-11-08 18:03
2013.04.21
Нужен OpenGL учебник. Не Краснова.


15-1356388018
wl
2012-12-25 02:26
2013.04.21
что подарить кресной на новый год?


15-1356268593
lead-in
2012-12-23 17:16
2013.04.21
Поток ввода в .bat-файле Windows


15-1356121802
Юрий
2012-12-22 00:30
2013.04.21
С днем рождения ! 22 декабря 2012 суббота