#sql #function #parameters
#sql #функция #параметры
Вопрос:
Итак, у меня есть база данных, и я хотел бы выбрать вес, проблема в том, что у меня разные веса, и я хочу знать, могу ли я превратить это в 1 запрос. Вот 2 разных типа веса, которые у меня есть, и что я сделал.
SELECT TOP (13) height, Sum(total weight) as 'total weight'
FROM dbo.combine
WHERE
FacilityType = 'male'
GROUP BY height
ORDER BY Sum(totalweight) DESC
SELECT TOP (13) height, Sum(total weight) as 'total weight'
FROM dbo.combine
WHERE
FacilityType = 'female'
GROUP BY height
ORDER BY Sum(totalweight) DESC
Комментарии:
1. Пожалуйста, укажите соответствующую базу данных.
2. сохраните список типов объектов в таблице.
Ответ №1:
Вы можете использовать GROUP BY
и оконные функции:
SELECT FacilityType, WasteStreamType, tonnes_hh
FROM (SELECT FacilityType, WasteStreamType, Sum(TonnesFromHHSources) as tonnes_hh,
ROW_NUMBER() OVER (PARTITION BY FacilityType ORDER BY Sum(TonnesFromHHSources) DESC) as seqnum
FROM dbo.combine c
GROUP BY FacilityType, WasteStreamType
) fw
WHERE seqnum <= 13
Комментарии:
1. @Albs. . . (1) Это глупо. Здесь вся необходимая вам информация собрана в одной таблице. Если вам действительно нужно разделить данные, вы можете использовать представления. (2) Ваш вопрос выполняет только
select
запросы, никаких вставок или создания таблиц. (3) Один оператор SQL в общем случае не может создать несколько разных таблиц.