按集合中的大多数标签排序

时间:2011-05-05 13:08:54

标签: mysql sql-server

SqlCommand sqlcmd = new SqlCommand("SELECT  Username, TimesUsed FROM  UserInfo " +
           "WHERE  (Category IN ( " + query + ")) " + "ORDER BY TimesUsed DESC", conn);

其中query ='css','php','html'表示例如。

我想以这样一种方式对它们进行排序,即查询中标记最多的用户放在最上面。

目前根据他们使用该套装的特定标签的次数对它们进行排序。

任何想法?提前谢谢:)

1 个答案:

答案 0 :(得分:1)

因此,如果我理解,您需要使用所有标记的总和,TimesUsed与特定标记相关。如果这是正确的,那么您可以SUM(TimesUsed)GROUP BY Username

SqlCommand sqlcmd = new SqlCommand("SELECT  Username, SUM(TimesUsed) AS TotalUsed FROM  UserInfo " +
       "WHERE  (Category IN ( " + query + ")) " + "GROUP BY Username ORDER BY SUM(TimesUsed) DESC", conn);
        sqlcmd.Parameters.AddWithValue("@c", query);

您的完整SQL:

SELECT
  Username, 
  SUM(TimesUsed) AS TotalUsed
FROM  UserInfo
WHERE Category IN ('php','css','sql','etc')
GROUP BY Username
ORDER BY SUM(TimesUsed) DESC