sql - 如何选择具有不同列值并共享同一列的行 [日期值]
问题描述
我正在尝试对行进行一些组合。我的桌子是这样的
┌──────────┬────────────────┬────────────────┐ │Machine_N│日期│动作│ ├──────────┼────────────────┼────────────────┤ │ RS1│ 2018-02-08 │ 阅读 │ │ RS1│ 2018-02-08 │ 参考 │ │ RS1│ 2018-02-16 │ 阅读 │ │ RS2│ 2018-01-31 │ 阅读 │ │ RS2│ 2018-01-31 │ 参考 │ └──────────┴────────────────┴────────────────┘
如何仅选择日期相同的操作,以便结果集为:
┌──────────┬────────────────┬────────────────┐ │Machine_N│日期│动作│ ├──────────┼────────────────┼────────────────┤ │ RS1│ 2018-02-08 │ 阅读 │ │ RS1│ 2018-02-08 │ 参考 │ │ RS2│ 2018-01-31 │ 阅读 │ │ RS2│ 2018-01-31 │ 参考 │ └──────────┴────────────────┴────────────────┘
我尝试了一个有计数子句,但没有运气。任何帮助,将不胜感激。
解决方案
使用subquery
:
select *
from table t
where date = (select top (1) [date]
from table
where machine_n = t.machine_n
group by date
order by COUNT(1) desc
);
但是不是大多数 DBMS 都有 TOP 子句,所以您可以使用LIMIT
子句代替
select *
from table t
where date = (select [date]
from table
where machine_n = t.machine_n
group by date
order by COUNT(1) desc
LIMIT 1
);
推荐阅读
- python - 如何处理预测值的变化
- javascript - 模态关闭后如何停止Iframe(视频)?
- php - 为什么 try-catch 不能与 Laravel 5.5 中的 phpseclib 库一起使用?
- ruby-on-rails - Ruby on Rails 5
- python - 无法使用python3在numpy中导入名称'multiarray'
- java - Spring boot Rest 服务消费者应用程序 - Docker 部署的 SSL 问题
- javascript - 在视图上显示通过模型传递的列表
- ios - 快速从 UILocalNotification 迁移到 UNUserNotification
- asp.net - 使用 HttpClient.PostAsync(uri, TParam, MediaFormatter) 时传输编码被分块并且 RequestBody 被编码
- javascript - Javascript RegExp - 测试字符问题