【发布时间】:2018-11-05 20:24:17
【问题描述】:
我有一些看起来像这样的数据:
LA Code Local_Authority Region Spend per pupil
----------------------------------------------------------------
831 Derby East Midlands 4370
830 Derbyshire East Midlands 4600
822 Bedford East of England 4694
873 Cambridgeshire East of England 4455
301 Barking & Dagenham London 5377
302 Barnet London 4965
330 Birmingham West Midlands 5483
331 Coventry West Midlands 4970
我想创建一个汇总表,显示一个地区、地方当局的最低支出和最高支出,如下所示:
Region Min_LA_Name Min_Amount Max_LA_Name Max_Amount
---------------------------------------------------------------------------
East Midlands Derby 4370 Derbyshire 4600
East of England Cambridgeshire 4455 Bedford 4694
London Barnet 4965 Barking & Dagenham 5377
West Midlands Coventry 4970 Birmingham 4970
我已经得到了以下代码:
SELECT
Region,
(SELECT Local_Authority
FROM LASpendPerPupil_df
GROUP BY REGION
HAVING MIN("Spend per pupil")) AS Min_LA_Name,
MIN("Spend per pupil") AS Min_Amount,
(SELECT Local_Authority
FROM LASpendPerPupil_df
GROUP BY REGION
HAVING MAX("Spend per pupil")) AS Max_LA_Name,
MAX("Spend per pupil") AS Max_Amount
FROM
LASpendPerPupil_df
GROUP BY
REGION;
我得到了最小值和最大值的正确输出,但是地方当局名称列只是重复第一个区域的最小和最大名称,所以像这样:
Region Min_LA_Name Min_Amount Max_LA_Name Max_Amount
---------------------------------------------------------------------------
East Midlands Derby 4370 Derbyshire 4600
East of England Derby 4455 Derbyshire 4694
London Derby 4965 Derbyshire 5377
West Midlands Derby 4970 Derbyshire 4970
谁能帮我解决这个问题?我是 Stack Overflow 新手和 SQL 新手,如果我没有正确发布,敬请见谅。
【问题讨论】:
-
你想如何处理领带?提示:使用适当的软件(MySQL、Oracle、DB2 等)和版本标记数据库问题很有帮助,例如
sql-server-2014。语法和功能的差异通常会影响答案。请注意,tsql缩小了选择范围,但没有指定数据库。
标签: sql-server tsql max min