Главная страница
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.007 c
2-1350042679
DdiK
2012-10-12 15:51
2013.04.21
исправить ошибку regular procedure and method pointer


15-1356193225
alexdn
2012-12-22 20:20
2013.04.21
asp.net


15-1356068940
azlk52
2012-12-21 09:49
2013.04.21
osk.exe не запускается


2-1350003007
Вова
2012-10-12 04:50
2013.04.21
база данных на dataSet проблема с сохранением данных


2-1350085369
Вова
2012-10-13 03:42
2013.04.21
Утечка памяти DataSet