或者試用以下線的東西。這裏的百分比在CTE中計算:
DECLARE @countries TABLE (name varchar(16), hit INT);
INSERT INTO @countries
VALUES
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('UK',1),
('FRA',1),
('FRA',1),
('FRA',1),
('FRA',1),
('FRA',1),
('USA',1),
('MEX',1);
WITH MY_PERCENTAGES AS
(
SELECT name,
CAST(count(*) AS NUMERIC(5,2))
/
CAST(SUM(count(*)) OVER() AS NUMERIC(5,2)) * 100.
AS percentage
FROM @countries
GROUP BY name
)
SELECT
name,
SUM (percentage) AS percentages
FROM
(
SELECT
CASE
WHEN percentage <6 THEN
'OTHER'
ELSE
name
END AS name,
percentage
FROM MY_PERCENTAGES
) TMP
GROUP BY name;
非常「乾淨」的代碼。剪下供將來使用。 – 2011-06-16 12:48:33