sql - 当到期日总是在每个月的最后一天时,查找不同的 ID
问题描述
ID
我必须在每个 ID 的整个历史记录中找到不同的 s,其截止日期总是在每个月的最后一天。
假设我有以下数据集:
ID DUE_DT
1 1/31/2014
1 2/28/2014
1 3/31/2014
1 6/30/2014
2 1/30/2014
2 2/28/2014
3 1/29/2016
3 2/29/2016
我想在 SQL 中编写一个代码,这样它就可以为我ID = 1
提供这个特定ID
的截止日期总是在每个给定月份的最后一天。
最简单的方法是什么?
解决方案
MySQL 版本(感谢@Gordon Linoff)
SELECT
ID
FROM
<table>
GROUP BY
ID
HAVING
SUM(IF(day(DUE_DT + interval 1 Day) = 1, 1, 0)) = COUNT(ID);
原答案:
SELECT MAX(DUE_DT) FROM <table> WHERE ID = <the desired ID>
或者如果您想要每个唯一 ID 的所有 MAX(DUE_DT)
SELECT ID, MAX(DATE) FROM <table> GROUP BY ID
推荐阅读
- javascript - Rails使用表单对象渲染部分
- python - 预测二元分类
- java - 确定任务是否更早,同时仅知道日期是否更早以及时间是否更早
- mysql - 在这种情况下,我应该使用带有布尔标志的多对多表还是一个表?
- javascript - 未捕获的类型错误:(中间值)(中间值)(中间值)不是函数
- c - 如何检查单词b(C lang)中单词a中的所有字符?
- python - 如何使用opencv的cv2.putTexttext显示文本2秒?
- featherlight.js - 使用 FeatherLight 打开后无法更改/获取输入值?
- python - Django Channels - 当 Group.send() 在 consumer.py 的循环中调用时,客户端只收到一条消息
- r - 地理编码的波斯参数在波斯系统语言环境中不起作用