【发布时间】:2020-07-03 21:41:11
【问题描述】:
我有来自同一个表的两个 SQL 查询,如下所示。
Query1 -> select * from (select (start_date::text), (end_date::text), count("NEW") "NEW" from table_name where refnum in (select refnum from table_name where start_date in (SELECT start_date FROM table_name ORDER BY ID DESC LIMIT 1)) and "NEW">0 group by start_date, end_date order by end_date DESC limit 10) top_10 order by end_date ASC
Query2 -> select * from (select (start_date::text), (end_date::text), count("DELETED") "DELETED" from table_name where refnum in (select refnum from table_name where start_date in (SELECT start_date FROM table_name ORDER BY ID DESC LIMIT 1)) and "DELETED">0 group by start_date, end_date order by end_date DESC limit 10) top_10 order by end_date ASC
请建议一个最终查询以合并这两个子查询,从而生成一个表
我想要包含列 start_date、end_date、NEW、DELETED
的最终表格【问题讨论】:
-
您想使用哪些列加入?
start_date和end_date? -
是的,开始日期和结束日期
-
有很多更好的解决方案。您能否提供您的 Postgres 版本和表定义(
CREATE TABLE table_name ..语句),显示数据类型和约束。 -
@ErwinBrandstetter 9.x 版
-
在 Postgres 10 之前,主要的 Postgres 版本包括第二个数字。见:postgresql.org/support/versioning 所以 9.6?还请提供查询应该实现的描述。那里有几段看起来可能存在误解的 SQL。
标签: sql postgresql join subquery