Ваша таблица Intervals
может быть TVP в SQL Server 2008.
SELECT Intervals.ItemId,
[count] = COUNT(MyTbl.ItemID),
[Percent] = 100.0 * COUNT(MyTbl.ItemID) / SUM(COUNT(MyTbl.ItemID)) OVER()
FROM (VALUES(NULL,0, 'Less than 1'),
(1,2,'1-2'),
(3,4,'3-4'),
(6,NULL,'More than 4')) Intervals (Low, High, ItemId)
LEFT JOIN (VALUES(1),
(1),
(3),
(4),
(4),
(4)) MyTbl(ItemID)
ON ( MyTbl.ItemID BETWEEN ISNULL(Intervals.Low, -2147483648) AND
ISNULL(Intervals.High, 2147483647) )
GROUP BY Intervals.ItemId,
Intervals.Low
ORDER BY Intervals.Low