mysql - Mysql 中的 RowNum,分组依据(MySQL 5.x)
问题描述
我想在 MySql 中做一个 rownum,但使用 group by。所以当de column city改变时rownum需要重新开始。
我试过了:
> select city, category_name, sales, @row_number:=CASE WHEN
> @db_names=sub_table.city THEN @row_number+1 ELSE 1 END AS row_number
> from ( SELECT city, category_name, sum(subtotal) as sales from
> customers join orders on customers.customer_id = orders.customer_id
> join order_items on orders.order_id = order_items.order_id
> join products on order_items.product_id = products.product_id
> join categories on products.category_id = categories.category_id
> group by city, category_name
> ) sub_table ORDER BY sub_table.city ASC, sub_table.sales DESC;
但我得到了这个结果:
解决方案
您非常接近,只是变量@db_name 未赋值:
select city, category_name, sales,
@row_number:=CASE WHEN
@db_names=sub_table.city THEN @row_number+1 ELSE 1 END AS row_number,
@db_name:=sub_table.city
from ( SELECT city, category_name, sum(subtotal) as sales from
customers join orders on customers.customer_id = orders.customer_id
join order_items on orders.order_id = order_items.order_id
join products on order_items.product_id = products.product_id
join categories on products.category_id = categories.category_id
group by city, category_name
) sub_table ORDER BY sub_table.city ASC, sub_table.sales DESC;
推荐阅读
- javascript - 在 afterRender() 中获取 div 的高度
- javascript - Jquery find 找不到类
- java - 使用java应用程序解压缩时文件权限被拒绝,手动工作正常
- visual-studio - 在 VS 2017 中添加到源代码管理发生了什么?
- swift - 按钮颜色无故改变
- game-engine - 碰撞检测数学
- python - 纯粹使用正则表达式拆分和反转字符串
- ios - 绕过“打开方式...”菜单直接在应用程序中打开 iOS 邮件附件
- linux - 在 Macbook 上使用 SCP 到 Linux 的 Jupyter 笔记本版本
- python - Python - 如果找不到 json 元素如何继续