sql - 如何获取不同列的最大值

标签 sql postgresql

我有两个这样的表:

最后下载:

Movie    Date-last-downloaded
 A              1-1-1111
 B              2-2-2222
 C              3-3-3333
 D              4-4-4444
 E              5-5-5555

上次购买:

Movie    Date-last-purchased
 A              0-0-0000
 B              3-3-3333
 C              5-5-5555
 G              2-2-2222
 H              7-7-7777

我正在尝试查找每部电影的最后一次下载或购买。即:

  • 如果电影已购买并下载,则返回较晚的日期(最近的日期)
  • 否则,如果仅下载但未购买(反之亦然),则返回 Date-last-downloaded (或Date-last-purchased)

我该怎么做?

最终结果应该是这样的:

Movie    Date-last-purchased-or-downloaded
 A              1-1-1111
 B              3-3-3333
 C              5-5-5555
 D              4-4-4444
 E              5-5-5555
 G              2-2-2222
 H              7-7-7777

(问题名称具有误导性 - 如果有人能想到一个更好的问题并为我解决它,我将不胜感激)

最佳答案

select  movie
,       max(dt)
from    (
        select  Movie
        ,       Date-last-downloaded as dt
        from    LastDownloaded
        union all
        select  Movie
        ,       Date-last-purchased
        from    LastPurchased
        ) SubQueryAlias
group by
        movie

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

相关文章:

c# - 替代 SSRS 订阅的替代方法有哪些?

sql - 排名查询结果 - Rails

ruby-on-rails - Minitest:相关 AR 模型的固定装置在运行测试时导致 ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation

mysql - 有没有一种方法或技术可以实现基于用户的数据库资源分配?

PostgreSQL + ANALYZE + pg_statistic 表

postgresql - Postgres 9.6.1 全文搜索大多数口头语言的词典

java - MySQL "No operations allowed after statement closed"

sql - 在azure虚拟机上运行的sql server web版上的Reporting服务可以使用azure数据库作为数据源吗?

sql - 提取为字符串时在 Presto 中处理不同的 json 格式?

SQL从所有列都等于值的表中选择