0
我有瀏覽器的表「名稱」 S &「版本」 STSQL - 選擇前10顯示其餘部分「其他」
Name Version
Safari 5.1
Safari 4.0
IE 5.0
IEMob 9.0
我正在寫一個查詢返回十大最常見的瀏覽器允許和標記任何額外的瀏覽器爲'其他'
這是我的存儲過程到目前爲止,它返回前10名瀏覽器像我想要的並創建一個'其他'行,但沒有填充它。
ALTER PROCEDURE [dbo].[GetUncommonBrowserCount]
@StartDate datetime = NULL,
@EndDate datetime = NULL,
@Domain varchar(255) = NULL
AS
BEGIN
SET NOCOUNT ON;
UPDATE dbo.Browsers SET [Name] = 'IE' WHERE [Name] = 'InternetExplorer'
SELECT Name, Count, [Version] FROM
(
SELECT TOP 10
Name,
COUNT(Name) AS [Count],
[Version]
FROM
dbo.GetCommonBrowserAccessEvents
WHERE
NOT
(
Name = 'Chrome' OR [Name] = 'Firefox' OR Name = 'IE' AND CAST(SUBSTRING([Version], 1, CHARINDEX('.', [Version]) - 1) AS INT) > 7
)
AND
(
@StartDate IS NULL OR [Date] > @StartDate
)
AND
(
@EndDate IS NULL OR [Date] < @EndDate
)
AND
(
@Domain IS NULL OR DomainName = @Domain
)
GROUP BY
Name,
[Version]
ORDER BY
COUNT(Name) DESC
) AS A1
UNION ALL
SELECT
'Other' AS Name,
COUNT(Name) AS [Count],
[Version] = NULL
FROM
dbo.GetCommonBrowserAccessEvents
WHERE
Name NOT IN (SELECT TOP 10
Name
FROM
dbo.GetCommonBrowserAccessEvents
GROUP BY
Name
ORDER BY
COUNT(Name) DESC)
END
如果你能看到我做錯了什麼,以及如何解決它,請告訴。這些是我從一張大桌子上得到的結果。其他的null版本是有意爲之的,因爲我正在用這些數據製作餅圖,並且希望將「Other」作爲單個切片。
Name Count Version
Safari 46 5.1
Mozilla 18 0.0
Safari 16 5.0
IE 12 7.0
Safari 12 0.0
Safari 9 6.0
IEMob 8 9.0
IEMob 8 10.0
IE 8 6.0
IE 1 3.2A
Other 0 NULL
你能張貼你得到 – christiandev 2014-10-17 08:22:58