Here is a sampel of something you can try. I left out some of the column so I could demonstrate the fundimental concept:DECLARE @Photo TABLE( PhotoID INT, CategoryID INT)INSERT @PhotoSELECT 1, 1UNION ALL SELECT 2, 1UNION ALL SELECT 3, 1UNION ALL SELECT 4, 1UNION ALL SELECT 5, 2UNION ALL SELECT 6, 2UNION ALL SELECT 7, 2UNION ALL SELECT 8, 2UNION ALL SELECT 9, 3UNION ALL SELECT 10, 3UNION ALL SELECT 11, 3UNION ALL SELECT 12, 3UNION ALL SELECT 13, 3UNION ALL SELECT 14, 3SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY CategoryID ORDER BY NEWID()) AS RowNumber FROM @Photo ) AS TWHERE T.RowNumber = 1
-Ryan