我在SELECT RANK()上使用PIVOT函數(分區...)返回一個表格「矩陣」來顯示我的戰爭遊戲朋友擁有每支軍隊最多的勝利。我想限制矩陣只顯示每個軍隊排名前3的成員(例如,在下圖中的「HE」列中,我想排除等級爲「4」的突出記錄)RANK()與PIVOT() - 限制輸出行數
我認爲我需要包括一個WHERE或TOP子句,但不能確定它的位置。我曾嘗試在此網站和谷歌上查找,但無法找到答案。對不起,如果這是一個學習者的問題,但我還是相當新的SQL Server。
這裏有兩個表[軍]和[戰役](電子表格格式): - https://docs.google.com/spreadsheet/ccc?key=0Ana40VqkvVtRdDAwc1BRWnhsWEdaaTQzcFprQmlyeVE
這裏是我的代碼: -
SELECT *
FROM
(
SELECT
RANK() over(Partition by ArmyMnemonic Order by COUNT(WDL) desc, Member) as ranks, ArmyMnemonic, Army, Member,
COUNT(WDL) as Wins
FROM
[dbo].[Battles]
INNER JOIN Armies on Army1 = Armies.ArmyNum
Where
WDL=2 and Home=1 -- represents a "Win"
Group By
Member, ArmyMnemonic, Army, WDL
) as rnk
PIVOT (sum(rnk.ranks) for ArmyMnemonic in([Be],[Br],[DoC],[DE],[Dw],[HE],[Li],[OK],[OG],[Sk],[TE],[TK],[VC],[WoC],[WE])) as pvt
ORDER BY Wins Desc;
感謝您的幫助,您可以給。
CREATE TABLE腳本: -
USE [WFBattlesDB]
GO
/****** Object: Table [dbo].[Armies] Script Date: 11/09/2012 13:24:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Armies](
[ArmyNum] [int] NOT NULL,
[ArmyMnemonic] [nvarchar](3) NOT NULL,
[Army] [char](30) NOT NULL,
[Official] [bit] NULL,
[Active] [bit] NULL,
CONSTRAINT [PK_Armies] PRIMARY KEY CLUSTERED
( [ArmyNum] ASC )WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)ON [PRIMARY] )ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
USE [WFBattlesDB]
GO
/****** Object: Table [dbo].[Battles] Script Date: 11/09/2012 13:25:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Battles](
[keyBattle] [int] IDENTITY(1,1) NOT NULL,
[subDate] [datetime] NOT NULL,
[Member] [nvarchar](20) NOT NULL,
[Home] [bit] NOT NULL,
[Army1] [int] NOT NULL,
[Army2] [int] NOT NULL,
[WDL] [int] NOT NULL,
[PtsVal] [int] NULL,
[MVU] [nvarchar](30) NULL,
[Fun] [int] NULL,
[Luck] [int] NULL,
[Notes] [nvarchar](1500) NULL,
[Link] [nvarchar](255) NULL
)ON [PRIMARY]
GO
@FranzSigmar請看我的編輯,有兩種方法來執行這個過濾器 – Taryn
我剛剛測試過它,並且完美地工作。非常感謝@bluefleet,感謝您的幫助。 –
@FranzSigmar高興地幫助。:) – Taryn