Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите с запросом  [new]
Турист
Member

Откуда:
Сообщений: 506
Задача:
есть две таблицы с полем Цена.
Как в один запрос выбрать из этих таблиц общую среднюю цену?
22 окт 09, 12:40    [7823181]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36818
union all поможет.
22 окт 09, 12:41    [7823192]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
select
    avg(цена)
from
    (
    select
        avg(цена) as цена
    from t1
    union all
    select
        avg(цена) as цена
    from t2
    ) t
Или
    select
        avg(цена) as цена
    from t1
    union --all
    select
        avg(цена) as цена
    from t2
22 окт 09, 12:43    [7823206]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
VladimirKr
Member

Откуда: СПб
Сообщений: 1050
tpg
select
    avg(цена)
from
    (
    select
        avg(цена) as цена
    from t1
    union all
    select
        avg(цена) as цена
    from t2
    ) t


Имхо, это неверно с математической точки зрения :) (не учитывается общее количество строк в таблицах при расчете среднего)
22 окт 09, 12:54    [7823343]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
Турист
Member

Откуда:
Сообщений: 506
Спасибо.
22 окт 09, 13:04    [7823455]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
VladimirKr
tpg
select
    avg(цена)
from
    (
    select
        avg(цена) as цена
    from t1
    union all
    select
        avg(цена) as цена
    from t2
    ) t


Имхо, это неверно с математической точки зрения :) (не учитывается общее количество строк в таблицах при расчете среднего)
Может быть, надо так:
select
    avg(цена)
from
    (
    select цена from t1
    union all
    select цена from t2
    ) t
Зависит от того, что имеется в виду под "общей средней ценой".
22 окт 09, 13:10    [7823520]     Ответить | Цитировать Сообщить модератору
 Re: помогите с запросом  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
iap
Может быть, надо так:
select
    avg(цена)
from
    (
    select цена from t1
    union all
    select цена from t2
    ) t
Зависит от того, что имеется в виду под "общей средней ценой".
Да, конечно именно так!
Ступил малость...
22 окт 09, 13:45    [7823905]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить