Q&A for enthusiasts and power users of the Android operating system
DECLARE @GoldWeight INT = 3 DECLARE @SilverWeight INT = 2 DECLARE @BronzeWeight INT = 1 DECLARE @GoldClass INT = 1 DECLARE @SilverClass INT = 2 DECLARE @BronzeClass INT = 3 SELECT TOP 1000 u.Id --, u.DisplayName , SUM(CASE b.Class WHEN @GoldClass THEN 1 ELSE 0 END) AS 'Gold badges' , SUM(CASE b.Class WHEN @SilverClass THEN 1 ELSE 0 END) AS 'Silver badges' , SUM(CASE b.Class WHEN @BronzeClass THEN 1 ELSE 0 END) AS 'Bronze badges' , SUM(CASE b.Class WHEN @GoldClass THEN 1 ELSE 0 END) * @GoldWeight AS 'Gold score' , SUM(CASE b.Class WHEN @SilverClass THEN 1 ELSE 0 END) * @SilverWeight AS 'Silver score' , SUM(CASE b.Class WHEN @BronzeClass THEN 1 ELSE 0 END) * @BronzeWeight AS 'Bronze score' , ( SUM(CASE b.Class WHEN @GoldClass THEN 1 ELSE 0 END) * @GoldWeight + SUM(CASE b.Class WHEN @SilverClass THEN 1 ELSE 0 END) * @SilverWeight + SUM(CASE b.Class WHEN @BronzeClass THEN 1 ELSE 0 END) * @BronzeWeight ) AS Score FROM Users u INNER JOIN Badges b ON u.Id = b.UserId WHERE u.Id = 8574934 GROUP BY u.Id ORDER BY Score DESC