sql - 有没有办法对记录进行排名?
问题描述
我正在尝试跨列进行排名(?),其中“收藏夹”列基于指定列中的最大值。
当前数据集如何:
用户 | 上衣买了 | 裤子买了 |
---|---|---|
安娜 | 50 | 12 |
乔恩 | 12 | 50 |
&想要做的是:
用户 | 上衣买了 | 裤子买了 | 最喜欢的项目 |
---|---|---|---|
安娜 | 50 | 12 | 最高额 |
乔恩 | 12 | 50 | 裤子 |
谢谢!
解决方案
您可以使用case
表达式:
select t.*,
(case greatest(tops_bought, pants_bought)
when tops_bought then 'tops'
when pans_bought then 'pants'
end) as favorite_item
from t;
推荐阅读
- kubernetes - 持久卷和持久卷声明如何在 Kubernetes 中相互绑定
- ios - 如何在重新加载 CollectionView 时防止单元格内的代码运行
- javascript - 如何根据javascript中的权重值从数组中获取n个值
- css - 如何响应地设置 Material-UI 的 Grid 项目的高度等于其宽度?
- python-3.x - 下面的代码给了我错误,例如“视图 home.views.edit 没有返回 HttpResponse 对象。它返回了 None 。”
- react-native - React-Native 购物车 - 无法将数据传递到购物车屏幕
- macos - 无法在 macos 上安装/链接 wget
- apache-spark - 在 Pyspark 中从 Rest Api 创建数据框时出错
- php - 使用 codeigniter 版本 4 显示 xml
- python - 多次附加用户输入