sql - 按销售的产品实例数降序分组,然后在 SQL 中按产品名称的字符串长度排序
问题描述
我有一个有两列的表:product_id
和product_name
. 每个product_id
重复多次,每次出现等于一次销售。
我想计算product_id
s 出现的次数,并将它们从最畅销到最少排序,然后我想按product_name
字符串的长度对其进行排序。
现在这就是我现在所拥有的,我不确定它是否正确:
SELECT product_id, COUNT(*), LEN(product_name) AS NameLength
FROM table
GROUP BY product_id
ORDER BY COUNT(product_id) DESC, LEN(product_name);
解决方案
您不能在选择中添加 LEN(product_name) 而不在 GROUP BY 部分中添加相同的内容。您可以尝试以下脚本,该脚本将首先按产品的最大订单数排序结果,然后如果有多个具有相同计数的产品可用,则按产品名称的长度排序。
SELECT product_id,LEN(product_name), COUNT(*)
FROM table
GROUP BY product_id,LEN(product_name)
ORDER BY COUNT(product_id) DESC, LEN(product_name)
推荐阅读
- css - 嵌套 CSS calc 不适用于 IE 11 和 Edge
- powershell - 测试 Windows 激活的功能
- python-requests - 仅在使用 python-requests 时从 Typeform API 获取 406 Not Acceptable
- c# - 从应用程序屏幕自定义生成的 PNG
- ios - 我如何通过通用链接使用深度链接打开相同的应用程序
- php - 如何使用 PHP Post 检索表单字段值
- android - 工具栏按钮单击事件在 Android 中不起作用
- c# - EF Core2.2:Scaffold-DbContext 不适用于 WPF 项目中的命名连接字符串
- ruby-on-rails - 第二个控制器中的 Ruby link_to 错误 - 没有路由匹配
- html - Websockets 处理丢失的包裹