Здравствуйте братцы! Вопрос в комментарии... Нет ли более короткого/красивого/быстрого решения, чем у меня сейчас?
DECLARE @t TABLE (v1 int, v2 int) INSERT INTO @t VALUES (1,20),(2,20),(1,0),(2,1),(1,27),(2,25),(1,null),(2,null),(1,30),(2,null),(1,null),(2,null),(2,null),(2,4),(3,10),(3,0),(3,0),(3,null) SELECT * FROM @t ORDER BY v1 SELECT v1, SUM(v2) AS v2sum, COUNT(v2) AS v2count, COUNT(*) AS v2count2, /*как вот не использовать эту строчку ниже, а заменить ее чем нибудь аналогичным и более красивым?*/ (SELECT COUNT(*) FROM @t WHERE v1=t.v1 AND v2>0) AS v2count3 FROM @t t GROUP BY v1