Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.04.21;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
2-1349962404
Wadimka
2012-10-11 17:33
2013.04.21
Как изменить имя текущего пользователя Windows?


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


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


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


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский