sql - 如果要选择所有列,如何将 DISTINCT 子句和 MIN 函数应用于 WHERE 语句?
问题描述
我需要你的帮助。我想在可以使用DISTINCT子句和MIN函数的表上显示所有列。
--Here is a sample code that I've tried but failed to show the expected output
SELECT * FROM TABLE
WHERE DOCUMENT_NUMBER IN (
SELECT DISTINCT DOCUMENT_NUMBER
FROM TABLE
)
and DESIRED_DUE_DATE IN (
SELECT MIN(DESIRED_DUE_DATE)
FROM TABLE
GROUP BY DOCUMENT_NUMBER)
order by DOCUMENT_NUMBER desc;
预期的输出应该是DOCUMENT_NUMBER都是不同的,或者更确切地说没有重复,并且所有不同的DOCUMENT_NUMBER的DESIRED_DUE_DATE在显示表上的所有列时都处于最小值。
上面的代码仍然显示重复Document_Number。
解决方案
它更简单:
SELECT DOCUMENT_NUMBER, MIN(DESIRED_DUE_DATE) DESIRED_DUE_DATE
FROM TABLE
GROUP BY DOCUMENT_NUMBER
ORDER BY DOCUMENT_NUMBER desc;
GROUP BY
返回 的不同值DOCUMENT_NUMBER
。
如果你想要表的所有列:
SELECT t.*
FROM TABLE t INNER JOIN (
SELECT DOCUMENT_NUMBER, MIN(DESIRED_DUE_DATE) DESIRED_DUE_DATE
FROM TABLE
GROUP BY DOCUMENT_NUMBER
) g on g.DOCUMENT_NUMBER = t.DOCUMENT_NUMBER AND g.DESIRED_DUE_DATE = t.DESIRED_DUE_DATE
ORDER BY t.DOCUMENT_NUMBER desc;
推荐阅读
- android - 为动态视图设置数据
- acumatica - 如何在 Web 服务端点中通过或条件 - Acumatica
- c# - 日期不会在 C# 的 Unix 时间戳中转换
- buildroot - 控制台登录,无密码提示 => 从用户提示到用户提示
- azure-data-factory - 使用 azure 数据工厂查找 Azure 数据湖目录中可用的文件数
- java - Ignite 的 SQL 查询是事务性的吗?
- reactjs - Next.JS 动态路由静态导出项目在新标签页打开或重新加载页面导致404
- google-apps-script - 如何使用应用脚本更新现有图表的数据范围?[谷歌表格]
- javascript - 有什么办法可以将从 babel 转换的 javascript 代码转换回原来的 es6 形式?
- mysql - MySQL:获取每个部门的员工总数