sql - 删除重复的 SQL
问题描述
我有表:
╔════╤════════════╗
║ id │ date ║
╠════╪════════════╣
║ 1 │ 2001-08-01 ║
╟────┼────────────╢
║ 1 │ 2001-09-02 ║
╟────┼────────────╢
║ 1 │ 2001-09-02 ║
╟────┼────────────╢
║ 1 │ 2001-09-01 ║
╟────┼────────────╢
║ 2 │ 2000-01-01 ║
╟────┼────────────╢
║ 3 │ 2000-09-01 ║
╚════╧════════════╝
并希望使用代码接收最大日期:
SELECT tt.*
FROM data tt
inner join(
SELECT id, max(data) as lastDate
FROM data
GROUP BY id) groupedtt
ON tt.id = groupedtt.id AND tt.data = groupedtt.lastDate
但是通过这段代码我得到了重复的值,比如
╔════╤════════════╗
║ id │ date ║
╠════╪════════════╣
║ 1 │ 2001-09-02 ║
╟────┼────────────╢
║ 1 │ 2001-09-02 ║
╟────┼────────────╢
║ 2 │ 2000-01-01 ║
╟────┼────────────╢
║ 3 │ 2000-09-01 ║
╚════╧════════════╝
我应该改变什么来获得没有重复的表格:
╔════╤════════════╗
║ id │ date ║
╠════╪════════════╣
║ 1 │ 2001-09-02 ║
╟────┼────────────╢
║ 2 │ 2000-01-01 ║
╟────┼────────────╢
║ 3 │ 2000-09-01 ║
╚════╧════════════╝
我正在使用 ms sql 服务器
解决方案
只需使用您正在使用的查询来加入您的原始表:
SELECT id, max(date) as [date]
FROM data
GROUP BY id;
推荐阅读
- c++ - 解释以下 C++ 程序的输出?
- iis - Octopus Deploy 对网站文件的权限
- javascript - 如何在 Javascript 中过滤嵌套对象
- vue.js - 如何解决 Vuetify 规则 [v-text-field] 和计算属性中的错误
- php - 如果数据透视表条件为真,Laravel 从集合中获取第一项
- javascript - 无法通过 reactjs 中的 URL 发送状态
- powershell - 如何检查并创建共享(隐藏)管理目录?
- snowflake-cloud-data-platform - 有没有办法消除对 Snowflake 中读者帐户的 DML/DDL 限制的限制?
- javascript - Ember V/s Angular 中自定义组件的属性绑定差异
- .htaccess - .htaccess /controller/action 模式调用两次 public/index.php