mysql - 按集合中最多标签排序

标签 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' 例如

我想以这样的方式对它们进行排序,即在查询中拥有最多标签的用户被放置在顶部。

目前,它们是根据使用集合中特定标签的次数进行排序的。

有什么想法吗?预先感谢:)

最佳答案

所以,如果我理解的话,您需要使用的所有标签的总数,而 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

关于mysql - 按集合中最多标签排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898194/

相关文章:

MYSQL - 如何分组并取非空值

mysql - 将字符串转换为 EPOCH MySQL

sql-server - SQL Server Management Studio 查询实际在哪里执行?

sql-server - Sql server 和 R、数据挖掘

MySQL的外键名称是什么?

mysql - 查询不存在的记录,返回 null,HTTP 200

java - 日期时间值如何存储在 mysql 中?

sql - 如何更干净地将 sql 聚合函数与 distinct 结合起来?

sql-server - 删除值后如何重置 SQL Server 所有表的标识列?

sql-server - 如果尚未安装,仅安装 PowerShell PackageProvider 和 Module