#sql #sql-server
Вопрос:
Мне нужно вернуть только одну строку, где Weeknumber
будет то же самое, что я выбираю в состоянии where.
CREATE TABLE #WeekExpense
(
WeekNumber VARCHAR(20),
WeekDayName VARCHAR(50),
Expense MONEY
)
INSERT INTO #WeekExpense
VALUES
( 'Week05','Monday', 20 ),
( 'Week05','Tuesday', 60 ),
( 'Week05','Wednesday', 20 ),
( 'Week05','Thurusday', 42 ),
( 'Week05','Friday', 10 ),
( 'Week05','Saturday', 15 ) ,
( 'Week05','Sunday', 8 ),
( 'Week04','Monday', 29 ),
( 'Week04','Tuesday', 17 ),
( 'Week04','Wednesday', 42 ),
( 'Week04','Thurusday', 11 ),
( 'Week04','Friday', 43 ),
( 'Week04','Saturday', 10 ) ,
( 'Week04','Sunday', 15 ),
( 'Week03','Monday', 10 ),
( 'Week03','Tuesday', 32 ),
( 'Week03','Wednesday', 35 ),
( 'Week03','Thurusday', 19 ),
( 'Week03','Friday', 30 ),
( 'Week03','Saturday', 10 ) ,
( 'Week03','Sunday', 15 )
Здесь мне нужно выбрать для каждой недели (03,04,05) среднее значение,сумма,количество,мин,макс
SELECT WeekNumber ---- I want there was Week03
COUNT(Expense) asdasd,
AVG(Expense) AvgOfExpense,
SUM(Expense) SumOfExpense,
MIN(Expense) MinOfExpense,
MAX(Expense) MaxOfExpense
FROM #WeekExpense
WHERE WeekNumber = 'Week03'
Комментарии:
1. Научитесь задавать умные вопросы . Вы, очевидно, столкнулись с ошибкой — поэтому признайте этот факт и включите полное сообщение об ошибке в свой вопрос. И не добавляйте путаницы, используя такие сокращения, как
each week (03,04,05)
— это не значения, найденные в вашей таблице.
Ответ №1:
Если я вас правильно понимаю, вы просто хотите сгруппировать свой набор результатов по номеру недели. Это можно сделать следующим образом:
SELECT WeekNumber, ---- I want there was Week03
COUNT(Expense) asdasd,
AVG(Expense) AvgOfExpense,
SUM(Expense) SumOfExpense,
MIN(Expense) MinOfExpense,
MAX(Expense) MaxOfExpense
FROM #WeekExpense
WHERE WeekNumber = 'Week03'
GROUP BY WeekNumber
Вот несколько документов для ГРУППЫ ПО:
https://www.w3schools.com/sql/sql_groupby.asp
https://docs.microsoft.com/en-us/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-ver15
W3schools-хорошее вступление (как обычно), но не так подробно.
Комментарии:
1. спасибо, приятель..