ОБРАЗЕЦ ТАБЛИЦЫ
SELECT * INTO #tbl1 FROM
(
SELECT 1 schoolID,'SchoolA' schoolname
UNION ALL
SELECT 1,'SchoolB'
)TAB
SELECT * INTO #tbl2 FROM
(
SELECT 1 StudentID,1 schoolID ,'A' Stu_Name,'XXX' address,'CITYA' [CITY],'NY' [STATE],'A' [STATUS]
UNION ALL
SELECT 2,1,'A','XXX','CITYA','NY','A'
UNION ALL
SELECT 3,1,'A','XXX','CITYA','NY','A'
UNION ALL
SELECT 4,1,'A','XXX','CITYA','NY','A'
UNION ALL
SELECT 14,1,'A','XXX','CITYA','NY','R'
UNION ALL
SELECT 5,1,'A','XXX','CITYA','NY','R'
UNION ALL
SELECT 6,1,'A','XXX','CITYA','NY','R'
UNION ALL
SELECT 7,1,'A','XXX','CITYB','NY','A'
UNION ALL
SELECT 8,1,'A','XXX','CITYB','NY','A'
UNION ALL
SELECT 9,1,'A','XXX','CITYC','NY','A'
UNION ALL
SELECT 10,1,'A','XXX','CITYC','NY','R'
)TAB
QUERY
Если вам нужно выяснить, города, где более половины студентов-приложений были приняты независимо от школы, вы можете следовать ниже запрос.
DECLARE @CITY VARCHAR(30)='NY'
SELECT [CITY]
FROM
(
SELECT DISTINCT [CITY]
,CASE WHEN
(
-- Gets half of total count
COUNT([STATUS]) OVER(PARTITION BY [CITY])/2)
>=
-- Checks if half of total count is greater than count of accepted for each cities
COUNT(CASE WHEN [STATUS]='A' THEN 1 END) OVER(PARTITION BY [CITY]
)
THEN 'N'
ELSE 'Y'
END ACCEPTED
FROM #tbl2
WHERE [CITY] = @CITY
)TAB
WHERE ACCEPTED='Y'
Если вы тусклый карапуз фильтр это условие по школе, вы можете следовать по указанному ниже запрос,
DECLARE @SCHOOLID INT = 1
DECLARE @CITY VARCHAR(30)='NY'
SELECT [CITY]
FROM
(
SELECT DISTINCT [CITY]
,CASE WHEN
(
COUNT([STATUS]) OVER(PARTITION BY [CITY])/2)
>=
COUNT(CASE WHEN [STATUS]='A' THEN 1 END) OVER(PARTITION BY [CITY]
)
THEN 'N'
ELSE 'Y'
END ACCEPTED
FROM #tbl1 T1
JOIN #tbl2 T2 ON T1.schoolID=T2.schoolID AND [email protected]
WHERE [CITY] = @CITY
)TAB
WHERE ACCEPTED='Y'
Пожалуйста, попробуйте сами. Если у вас возникнут какие-либо проблемы, задайте вопрос с конкретной проблемой. –
Stackoverflow не является домашней работой. –
Это не домашнее задание! Я работаю над заявлением студента-заявителя! Спасибо. Я задаю вопрос, потому что я не знаком с таким типом написания запросов. – user3267270