Главная страница
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.01 c
2-1349939341
Grimm375
2012-10-11 11:09
2013.04.21
if else if несколькольких дефайнов


3-1288770448
evgen2301
2010-11-03 10:47
2013.04.21
Запрет редактирования записей


15-1356101477
Kerk
2012-12-21 18:51
2013.04.21
А где есть фотографии старых компьютеров?


15-1352870840
pavel_guzhanov
2012-11-14 09:27
2013.04.21
Выбор планшета


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