SQL-在A列A上的A列中不同的每个值B中的每个值

发布于 2025-02-08 21:13:37 字数 1775 浏览 3 评论 0原文

我正在使用一个名为du_vertrag的表工作,并且正在尝试构建一个查询,该查询选择id> id状态 Pairs的不同值。

Input Table:

idstatusdate
6251899beantragt20201008
6377042beantragt20201008
6387891beantragt20201008
6251899übergabe20201009
6377042übergabe20201009
6387891übergabe20201009
6251899übergabe20201010
6377042übergabe20201010
6387891übergabe20201010
6251899aktiv20201024
6377042aktiv20201024
6387891aktiv20201024

Desired Output:

idstatusdate
6251899beantragt20201008
6377042BEANTRAGT20201008
6387891BEANTRAGT
6251899übergabe20201009更改
状态6377042übergabe20201009387891
20201008
一个AKTIVDateTime
6387891状态
20201024

需要每个ID的新

I'm working with a table called du_vertrag, and I'm trying to build a query that selects distinct values for id and status pairs.

Input Table:

idstatusdate
6251899beantragt20201008
6377042beantragt20201008
6387891beantragt20201008
6251899übergabe20201009
6377042übergabe20201009
6387891übergabe20201009
6251899übergabe20201010
6377042übergabe20201010
6387891übergabe20201010
6251899aktiv20201024
6377042aktiv20201024
6387891aktiv20201024

Desired Output:

idstatusdate
6251899beantragt20201008
6377042beantragt20201008
6387891beantragt20201008
6251899übergabe20201009
6377042übergabe20201009
6387891übergabe20201009
6251899aktiv20201024
6377042aktiv20201024
6387891aktiv20201024

I need for every id the new status with the first datetime the status changed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱你不解释 2025-02-15 21:13:38

如果您需要每个“ id ”和“ 状态”的不同值,则可以在这两个字段上进行汇总,然后选择最低日期以获取输出:

SELECT id, 
       status, 
       MIN(date) AS date
FROM du_vertrag 
GROUP BY id, 
         status

如果您可以共享您的DBMS是什么,我可以将小提琴链接起来,您可以在其中测试此解决方案。

If you need distinct values for each "id" and "status", you can aggregate over those two fields and select the minimum date to get your output:

SELECT id, 
       status, 
       MIN(date) AS date
FROM du_vertrag 
GROUP BY id, 
         status

If you can share what your DBMS is, I can link a fiddle where you can test this solution.

得不到的就毁灭 2025-02-15 21:13:38

这似乎很简单汇总

select id, status, min(date) as date
from du_vertrag
group by id, status;

This appears to be simple aggregation

select id, status, min(date) as date
from du_vertrag
group by id, status;
尴尬癌患者 2025-02-15 21:13:38

选择 *
从(选择ID,状态,
row_number()over(iD分区,状态顺序按日期asc)为row_num
来自du_vertrag)d
d.row_num = 1

SELECT *
FROM (SELECT id, status,
row_number() over (partition by id, status order by date asc) as row_num
FROM du_vertrag) d
where d.row_num = 1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文