SqlCommand sqlcmd = new SqlCommand("SELECT Username, TimesUsed FROM UserInfo " +
"WHERE (Category IN ( " + query + ")) " + "ORDER BY TimesUsed DESC", conn);
其中query ='css','php','html'表示例如。
我想以这样一种方式对它们进行排序,即查询中标记最多的用户放在最上面。
目前根据他们使用该套装的特定标签的次数对它们进行排序。
任何想法?提前谢谢:)
答案 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