sql - 在 SQL 中获得频繁使用日
问题描述
我有一个表,其中包含每个 user_id 的旅行日期。我day of week
从日期派生了一个列。
桌子
+------+----------------+-----------+
| user | Date of Travel | DayofWeek |
+------+----------------+-----------+
| 1 | 2019-07-22 | Monday |
| 1 | 2019-07-22 | Monday |
| 1 | 2019-07-29 | Monday |
| 1 | 2019-08-05 | Monday |
| 1 | 2019-08-06 | Tuesday |
| 2 | 2019-07-24 | Wednesday |
| 2 | 2019-07-24 | Wednesday |
| 2 | 2019-07-31 | Wednesday |
| 2 | 2019-08-07 | Wednesday |
| 2 | 2019-08-06 | Tuesday |
+------+----------------+-----------+
对于每个用户,我想要他最频繁的旅行日。所需的输出如下
+------+---------------------+
| user | Frequent_Travel_Day |
+------+---------------------+
| 1 | Monday |
| 2 | Wednesday |
+------+---------------------+
任何帮助将不胜感激
解决方案
你可以使用:
SELECT TOP 1 WITH TIES [user], DayOfWeek AS Frequent_Travel_Day
FROM tab
GROUP BY [user], DayOfWeek
ORDER BY ROW_NUMBER() OVER(PARTITION BY [user] ORDER BY COUNT(*) DESC);
输出:
user DayOfWeek
1 Monday
2 Wednesday
推荐阅读
- javascript - 使用地图功能(javascript)将元素添加到列表
- html - 有没有办法使用 CSS 为我拥有的这个水平菜单创建一个下拉菜单?我试图在“文章”部分创建下拉菜单
- java - 打开堆转储时,Android Studio 中的 Profiler 为空白
- c# - C# Web API - 当我没有传递所有查询字符串参数时收到错误消息
- javascript - 如何在核心 JavaScript 中将新日期对象格式化为 MySQL 格式 YYYY-MM-DD hh-mm-ss?
- javascript - 如何使用 cookie 将 javascript 变量传递给 php 变量
- parameters - 如何通过网格搜索绘制 AUC 以获得最佳超参数
- node.js - 尝试将用于 web 的 Node.js React 应用程序部署到 Heroku 或 Github Pages,它可以在本地工作,而不能在 Heroku 上工作。为什么?
- reactjs - 我如何在 reactjs 中实现这一点而不替换新触发器中的第一个触发器崩溃
- bash - BASH:子命令扩展中不可避免的分词?