Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2014, 20:58   #11
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Добавлю еще три копейки. WHERE работает с учетом индексов, т.е, если они есть по поисковым полям, то выборка оптимально происходит. having же по всему результату выборки как со временной таблицей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.06.2014, 21:00   #12
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Stiilet, ок. Понятно. А если бы это было не учебное задание, то можно было бы пользоваться любым вариантом? Потому что я в результате не вижу разницы. Или нет?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 30.06.2014, 21:02   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В общем случае having не оптимально по сравнению с WHERE или JOIN. И лучше его не использовать если есть возможность.

PS можно сумму в данном случае во вложенном запросе подсчитать в FROM и в наружном WHERE оценить её. По скорости не скажу что лучше будет, эксперементируй
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 30.06.2014 в 21:06.
Аватар вне форума Ответить с цитированием
Старый 30.06.2014, 21:17   #14
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
В общем случае having не оптимально по сравнению с WHERE или JOIN. И лучше его не использовать если есть возможность.
Так у меня в запросе используется group by и после него использовать where не получается. Т.е. вот такой запрос работать не будет
Код:
select AccountCD, Sum(PaySum) from PaySumma where AccountCD in (005488,015527,080047) and paysum>100 group by AccountCD where Sum(PaySum) > 1000;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 30.06.2014, 21:23   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
можно было бы пользоваться любым вариантом?
Нет не льзя. Или вернее можно, но это может обойтись тебе в скорости.
Как сказал Аватар есть такое понятие "Стоимость запроса" (http://ru.wikipedia.org/wiki/%D0%9E%...A3%D0%91%D0%94)
Вот от этого анализа и нужно отталкиваться создавая запросы.
Бывает что один маленький запрос работает в 100500 раз хуже огромного который на миллион строк кода, потому что механизм СУБД быстрее обработает его чем маленький из-за отсутствия должной настройки для конкретно этого маленького запроса.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.06.2014, 21:52   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Попробуй так, оцени по скорости, что быстрей то и выбери. Съест ли огнептица не уверен
Код:
SELECT U.*
  FROM (
    select AccountCD, Sum(PaySum) AS SumPaySum
      from PaySumma 
      where AccountCD in (005488,015527,080047) and paysum>100
      group by AccountCD) U
  WHERE U.SumPaySum > 1000
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запросы niki-maximal SQL, базы данных 3 26.02.2014 21:00
SQL запросы bumbarashek SQL, базы данных 2 22.05.2013 21:04
SQL-запросы Jrcfyf C# (си шарп) 3 24.01.2012 21:40
sql запросы Mr.Steroid Помощь студентам 20 16.10.2010 21:25