gpt4 book ai didi

sql - SQLite 如何获取多列的最大值?

转载 作者:行者123 更新时间:2023-12-04 02:57:05 27 4
gpt4 key购买 nike

我有一个包含 2 个表的 SQLite 数据库:albumphoto。相册基本上只是照片的集合,由 photo 中的外键表示。每张照片都有 3 个时间戳:创建、更新、删除。

sqlite> SELECT id, title FROM album;

id title
---------- ----------------
1 Beach party 2018
2 Dad's 60th birth

sqlite> SELECT id, album, ts_created, ts_updated, ts_deleted FROM photo;

id album ts_created ts_updated ts_deleted
---------- ---------- ---------- ---------- ----------
1 1 1538649250 1538649274
2 1 1538649250 1538649261
3 1 1538649250
4 1 1538649250 1538649267
5 1 1538649250 1538649267
6 2 1538649962
7 2 1538649962

在应用程序中显示相册时,我想显示标题,以及最后一张照片“事件”(添加、编辑、删除等)的日期,例如

Beach party 2018

Edited on: Thu Oct 4 10:34:34 UTC 2018

如何从 photo 表中的时间戳中获取此信息?

最佳答案

max 内置函数的使用在这里有所帮助。来自 the documentation :

Note that max() is a simple function when it has 2 or more arguments but operates as an aggregate function if given only a single argument.

另请注意,由于我们的时间戳可以为 NULL,并且如果任何值为 NULL,max 将返回 NULL,因此我们需要使用 coalesce 来确保 NULL 列不会打破外部 max

SELECT album.id,
album.title,
max(
max(coalesce(photo.ts_created, 0)),
max(coalesce(photo.ts_updated, 0)),
max(coalesce(photo.ts_deleted, 0))
) AS ts_content
FROM album,
photo
WHERE album.id = photo.album
GROUP BY album.id;


id title ts_content
---------- ---------------- ----------
1 Beach party 2018 1538649274
2 Dad's 60th birth 1538649962

关于sql - SQLite 如何获取多列的最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52645747/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com