Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как составить запрос SQL посчитать среднее арифметическое по определенных строк / 23 сообщений из 23, страница 1 из 1
26.10.2009, 17:03
    #36273020
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Здравствуйте у меня такой вопрос дана БД и в ней таблица Products c такими полями IDProduct, NameProduct, Price. Задача состоит в следующем надо выбрать и этой таблицы последнии 100 записей у которых NamePrice = 'Milk' и посчитать среднюю цену в этих записях.
Последние записи я выбрал а вот как посчитать среднюю цену не знаю

Select top 100 * from Products where NameProduct = 'Milk' Order By IDProduct Desc;
Заранее благодарю.
...
Рейтинг: 0 / 0
26.10.2009, 17:05
    #36273029
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Exiton
Последние записи я выбрал а вот как посчитать среднюю цену не знаю

Использовать функцию AVG()
...
Рейтинг: 0 / 0
26.10.2009, 17:06
    #36273031
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonПоследние записи я выбрал а вот как посчитать среднюю цену не знаюAVG
...
Рейтинг: 0 / 0
26.10.2009, 17:13
    #36273044
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Только сначала оформить приведённый запрос в виде производной таблицы или CTE
...
Рейтинг: 0 / 0
26.10.2009, 17:14
    #36273047
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
я знаю об этой функции у нее такой синтаксис SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
но мне надо именно среднюю цену последних записей 100
...
Рейтинг: 0 / 0
26.10.2009, 17:16
    #36273051
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
iapТолько сначала оформить приведённый запрос в виде производной таблицы или CTE каким образом это можно сделать.
...
Рейтинг: 0 / 0
26.10.2009, 17:17
    #36273057
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Exitonя знаю об этой функции у нее такой синтаксис SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
но мне надо именно среднюю цену последних записей 100
А вы знаете, что такое вложенный запрос ?
...
Рейтинг: 0 / 0
26.10.2009, 17:18
    #36273058
Supra93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitoniapТолько сначала оформить приведённый запрос в виде производной таблицы или CTE каким образом это можно сделать.
http://www.sql.ru/forum/actualthread.aspx?tid=706838#7840154
...
Рейтинг: 0 / 0
26.10.2009, 17:22
    #36273069
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
GloryExitonя знаю об этой функции у нее такой синтаксис SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
но мне надо именно среднюю цену последних записей 100
А вы знаете, что такое вложенный запрос ?
Вот именно что не знаю. прощу помочь.
...
Рейтинг: 0 / 0
26.10.2009, 17:23
    #36273071
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonGloryExitonя знаю об этой функции у нее такой синтаксис SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
но мне надо именно среднюю цену последних записей 100
А вы знаете, что такое вложенный запрос ?
Вот именно что не знаю. прощу помочь.
select ... from (select ... from ...) as subquery_alisas ...
...
Рейтинг: 0 / 0
26.10.2009, 17:27
    #36273086
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Статистические функции и вложенные запросы несовместимы. на msdn написано
http://msdn.microsoft.com/ru-ru/library/ms177677(SQL.90).aspx
...
Рейтинг: 0 / 0
26.10.2009, 17:30
    #36273088
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonСтатистические функции и вложенные запросы несовместимы. на msdn написано
http://msdn.microsoft.com/ru-ru/library/ms177677(SQL.90).aspx
А вам разве предлагают использовать вложенный запрос в качестве аргумента статистической функции ?
...
Рейтинг: 0 / 0
26.10.2009, 17:30
    #36273092
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonСтатистические функции и вложенные запросы несовместимы. на msdn написано
http://msdn.microsoft.com/ru-ru/library/ms177677(SQL.90).aspx
Тогда почему работает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare @t table (value int)

insert @t
          select  1 
union all select  2 
union all select  3 

select avg(value) from ( select top  2  * from @t order by value desc ) a
...
Рейтинг: 0 / 0
26.10.2009, 17:32
    #36273098
Supra93
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Гавриленко Сергей АлексеевичExitonСтатистические функции и вложенные запросы несовместимы. на msdn написано
http://msdn.microsoft.com/ru-ru/library/ms177677(SQL.90).aspx
Тогда почему работает?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare @t table (value int)

insert @t
          select  1 
union all select  2 
union all select  3 

select avg(value) from ( select top  2  * from @t order by value desc ) a

баг
RC юзаете?
...
Рейтинг: 0 / 0
26.10.2009, 17:33
    #36273102
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
select ... from (select ... from ...) as subquery_alisas ...
Спасибо большое получилось. работает.

А это можно в C# ADO как-то вернуть это значение.
...
Рейтинг: 0 / 0
26.10.2009, 17:34
    #36273104
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Спасибо большое всем за ответы на этом сайте действительно спецы просто супер как можно
благодарить на этом форуме?
...
Рейтинг: 0 / 0
26.10.2009, 18:22
    #36273219
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Друзья а как задать параметризированный запрос и чтобы не точно возвращало TOP 100 значений
а заранее не известно сколько когда я пишу TOP @Numbers выдает ошибку.
...
Рейтинг: 0 / 0
26.10.2009, 18:26
    #36273230
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Exitonкогда я пишу TOP @Numbers выдает ошибку.А у меня никакой ошибки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare @t table (value int)

insert @t
          select  1 
union all select  2 
union all select  3 

declare @n int
set @n =  2 

select avg(value) from ( select top(@n) * from @t order by value desc ) a
...
Рейтинг: 0 / 0
26.10.2009, 20:02
    #36273413
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Написал так как Вы показали
declare @n int
set @n = 5
select top (@n) * from Products Order By IDproduct desc;
выдает следующую ошибку
Line 3: Incorrect syntax near '('. Я проверяю запросы в SQL Query Analizer и
работаю в MS SQL Server 2000
...
Рейтинг: 0 / 0
26.10.2009, 20:18
    #36273433
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonНаписал так как Вы показали
declare @n int
set @n = 5
select top (@n) * from Products Order By IDproduct desc;
выдает следующую ошибку
Line 3: Incorrect syntax near '('. Я проверяю запросы в SQL Query Analizer и
работаю в MS SQL Server 2000Например, построить динамический запрос
...
Рейтинг: 0 / 0
27.10.2009, 13:28
    #36274670
Exiton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Здравствуйте еще раз, разобрался со вложенными запросами, теперь такой вопрос:
Вот я создал вот такой запрос
"Select avg(Price) as Average from(select * from
(Select top 1000 * from Products Order By IDProduct desc) as squer1 where Vid = @VidP ) as subqui1
меня интерисует на сколько быстро будет выполнятся такой запрос если в таблице Products будут
несколько миллионов записей а извлекать нужно примерно несколько тысяч последних строк
из таблицы.
В этом запросе получается сначал данные сортируются по столбцу IDProduct, потом извлекаются
верхние 1000 строк, мне почему-то кажется что не оптимально так делать
может быть есть более быстрый способ для извлечения последних N записей из таблицы.
Кто знает помогите
Заранее благодарю!
...
Рейтинг: 0 / 0
27.10.2009, 13:35
    #36274688
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
ExitonВ этом запросе получается сначал данные сортируются по столбцу IDProduct, потом извлекаются
верхние 1000 строк, мне почему-то кажется что не оптимально так делать
Это вы в плане выполнения запроса увидели?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.10.2020, 12:33
    #40012567
Alizhan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как составить запрос SQL посчитать среднее арифметическое по определенных строк
Exiton,

SELECT AVG (Price)
FROM dbo.Products
WHERE NameProduct = 'Milk'
ORDER BY IDProduct desc;
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как составить запрос SQL посчитать среднее арифметическое по определенных строк / 23 сообщений из 23, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]