首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在顶点显示多列的SQL MAx函数?

在顶点显示多列的SQL MAx函数?
EN

Stack Overflow用户
提问于 2016-12-06 05:14:23
回答 2查看 57关注 0票数 0

image1 image2我正在尝试写一个sql函数来显示我们数据库中每一年的最高ppg的球员的年份、球员名称和ppg。

我们有一个球员表,里面有所有的统计数据,还有一个球队表,里面有每个赛季的统计数据,作为球队的总数。

我想做的是从每个赛季得到最高的得分者,所以:

代码语言:javascript
运行
复制
2010: Jake 10ppg
2011: Jake 12 ppg
2012 Carl 13 ppq

等。

下面是我当前的查询

代码语言:javascript
运行
复制
SELECT Year, PlayerName, MAX(PPG) AS PPG
FROM PLAYERS_T, TEAM_T
GROUP BY Year
ORDER BY PPG;

然而,这不起作用,我需要做些什么才能使其起作用?

EN

回答 2

Stack Overflow用户

发布于 2016-12-06 05:19:33

这应该可以工作,但将显示重复的记录,如果相同的PPG。我不知道团队表在那里有什么用

代码语言:javascript
运行
复制
WITH PLAYERS_T as (
     SELECT 2010 "Year",  'Jake' "PlayerName", 10 ppg     
     UNION 
     SELECT 2011 "Year",  'Jake' "PlayerName", 12 ppg     
     UNION 
     SELECT 2012 "Year",  'Carl' "PlayerName", 13 ppg     
)
 SELECT T1."Year", T1."PlayerName", T1.PPG
 FROM PLAYERS_T T1
 LEFT JOIN PLAYERS_T T2
   ON T1."Year" = T2."Year"
  AND T1.PPG <  T2.PPG
 WHERE T2."Year" IS NULL

输出

票数 0
EN

Stack Overflow用户

发布于 2016-12-06 05:33:28

试试这个:

代码语言:javascript
运行
复制
SELECT players_T.playername, players_T.ppg, players_T.year
FROM
(SELECT year, MAX(PPG) AS mx
 FROM players_T
 GROUP BY year) sub
INNER JOIN players_T ON sub.mx = players_T.ppg
WHERE sub.year = players_T.year
ORDER BY players_T.year

在子查询中,这将查找每年的最大ppg。然后,我们与ppg上的player表连接以找到player名称。结果应该是球员名称,ppg和年份在一起。让我知道你发现了什么!

编辑:需要包含用于year的WHERE子句

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40983457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档