总结一个SQL数据库 [英] Summarize an SQL database

查看:71
本文介绍了总结一个SQL数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据库,我想在下面总结一下。



GAME_ID GOALIEID SAVE

2001 5 Y

2001 4 Y

2001 5 N

2001 4 Y

2001 5 N



基本上我试图通过game_id和goalieid来展示哪个守门员进行了最多的扑救以及守门员在那场比赛中有多少扑救。我只在这里放了一个游戏来使这个例子变得非常简单。



我想得到一个sql结果可以产生这个

< br $>
GAME_ID GOALIEID SAVES

2001 4 2



我的尝试: < br $>


SELECT GAME_ID,GOALIEID,COUNT(SAVE)

来自GIRAFFE.MLS

WHERE SAVE ='N'

GROUP BY GAME_ID

按次数排序(DIDSCORE)DESC



但是,这只是所有保存的总和而且并不特定于1守门员的数量。

解决方案

请注意,此解决方案适用于SQL服务器,因为我没有MySQL,但我希望解决方案是相似的。我不得不将SAVE字段的名称更改为SAVEFLAG,因为SAVE是SQL服务器中的保留字。



 create table #Temp(
GAME_ID INT,
GOALIEID INT,
SAVEFLAG VARCHAR(1)


INSERT INTO #Temp SELECT 2001,5,'Y'
INSERT INTO #Temp SELECT 2001,4,'Y'
INSERT INTO #Temp SELECT 2001,5,'N'
INSERT INTO #Temp SELECT 2001,4,'Y'
INSERT INTO #Temp SELECT 2001,5,'N'

- 允许最多进球的守门员
SELECT top 1 GAME_ID,GOALIEID,COUNT(SAVEFLAG)
FROM #Temp
WHERE SAVEFLAG ='N'
GROUP BY GAME_ID,GOALIEID
ORDER BY 3 DESC

- 守门员保存最多
SELECT top 1 GAME_ID, GOALIEID,COUNT(SAVEFLAG)保存
来自#Temp
WHERE SAVEFLAG ='Y'
GROUP BY GAME_ID,GOALIEID
ORDER BY 3 DESC


I have a database that I am trying to summarize below.

GAME_ID GOALIEID SAVE
2001 5 Y
2001 4 Y
2001 5 N
2001 4 Y
2001 5 N

Essentially I am trying to show by game_id and goalieid in which game did which goalie make the most saves in and how many saves did the goalie have in that game. I only put one game here to make the example very simple.

I am trying to get an sql result that can produce this

GAME_ID GOALIEID SAVES
2001 4 2

What I have tried:

SELECT GAME_ID, GOALIEID, COUNT(SAVE)
FROM GIRAFFE.MLS
WHERE SAVE = 'N'
GROUP BY GAME_ID
ORDER BY COUNT (DIDSCORE) DESC

However, this is only totaling all saves and not specific to the amount the 1 goalie made.

解决方案

Please note, this solution is for SQL server, as I don't have MySQL, but I would expect the solutions to be similar. I had to change the name of the SAVE field to SAVEFLAG because SAVE is a reserved word in SQL server.

create table #Temp (
	GAME_ID INT,
	GOALIEID INT,
	SAVEFLAG VARCHAR(1)
	)

	INSERT INTO #Temp SELECT 2001, 5,'Y'
INSERT INTO #Temp SELECT 2001, 4,'Y'
INSERT INTO #Temp SELECT 2001, 5,'N'
INSERT INTO #Temp SELECT 2001, 4,'Y'
INSERT INTO #Temp SELECT 2001, 5,'N'

-- Goalie that allowed the most goals
SELECT top 1 GAME_ID, GOALIEID, COUNT(SAVEFLAG) 
FROM #Temp
WHERE SAVEFLAG = 'N'
GROUP BY GAME_ID, GOALIEID
ORDER BY 3 DESC

-- Goalie with the most saves
SELECT top 1 GAME_ID, GOALIEID, COUNT(SAVEFLAG) AS SAVES
FROM #Temp
WHERE SAVEFLAG = 'Y'
GROUP BY GAME_ID, GOALIEID
ORDER BY 3 DESC


这篇关于总结一个SQL数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆