sql - 要删除的重复sql
问题描述
我有数据库记录
我的 sql:
SELECT
DISTINCT name, date(mod_wr)
FROM
test.object_stg
WHERE
ir = '4552724'
GROUP BY
name, date(mod_wr)
ORDER BY name
最后一条记录与最后一条相同。它只有一个不同的日期。是否有可能以某种方式查询以返回“名称”列发生变化的所有记录?对于记录 4 和 5,名称相同,只是日期不同。我希望它只返回 4 和 5 的记录,因为没有变化。
解决方案
从您的样本数据中,您有 3 个不同的名称。但是,您不能在 select 语句中使用 distinct,因为它适用于列出的每个字段,并且没有一个日期可以提供完全匹配。
但是,您可以使用 group by 语句来将您的标题整理在一起。
// MySQL 5.6 Statement
select name, date(mod_wr) from object_stg group by name;
// MSSQL 2017 Statement
select name, max(mod_wr) from object_stg group by name;
两个语句都返回 3 行,其中仅显示 BMW、1.0 GL 和 1.0 GLS 以及单个日期。
推荐阅读
- sql - 我想在访问 sql 中写一个 if else 语句,我确实写了一个代码,但它不工作
- azure - 无法在 Azure 分析服务中添加/连接 CosmosDB
- python-3.x - 无法从特定 python 路径创建 MSI 和 exe 文件
- kubernetes - 这个 Yaml 文件是什么版本的 Kubernetes Dashboard(1.6 或 1.7)?
- python - 如果 Pyramid 会话是单向散列而不是存储在服务器端,那么数据来自哪里?
- codemirror - 如何使用 CodeMirror 隐藏字符范围?
- javascript - 不变违规:尝试使用 Jest/Enzyme 测试 React 组件时元素类型无效错误
- python - 列表到数据框,列中列表中的每个元素
- symfony - 以关系数量为条件的教义查询
- c++ - 如何中断使用 Mako SDK 编写程序集?