选择要按查询组搜索的列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了选择要按查询组搜索的列相关的知识,希望对你有一定的参考价值。

我有一个名为prices]的表,该表通过product_id列引用了表产品。我想要一个查询,该查询选择具有最大最终日期的按[[product_id分组的价格,并通过一个ID为分组价格的select来获取start_date的值。 我尝试使用以下查询,但是开始日期的值错误。尽管我在where子句上使用了价格ID,但由于结果子查询返回的行多,这很奇怪。因为我对查询设置了限制,但这是错误的。

select prices.produto_id, prices.id, MAX(CASE WHEN prices.finish_date IS NULL THEN COALESCE(prices.finish_date,'9999-12-31') ELSE prices.finish_date END) as finish_date, (select start_date from prices where prices.id = prices.id limit 1) as start_date from prices group by prices.product_id, prices.id

如何获取分组行中价格ID的相对开始日期?我正在使用postgresql。

查看查询所需的示例:

数据集:

ID | PRODUCT_ID | START_DATE | FINISH_DATE 1 1689 2018-01-19 02:00:00 2019-11-19 23:59:59 2 1689 2019-10-11 03:00:00 2019-10-15 23:59:59 3 1689 2019-01-11 03:00:00 2019-05-15 23:59:59 4 1690 2019-11-11 03:00:00 2019-12-15 23:59:59 5 1690 2019-05-11 03:00:00 2025-12-15 23:59:59 6 1691 2019-05-11 03:00:00 null

我想要这个结果:

ID | PRODUCT_ID | START_DATE | FINISH_DATE 1 1689 2018-01-19 02:00:00 2019-11-19 23:59:59 5 1690 2019-05-11 03:00:00 2025-12-15 23:59:59 6 1691 2019-05-11 03:00:00 9999-12-31 23:59:59

开始日期应与分组依据之前的行的值相同。

我有一个名为价格的表,该表具有通过product_id列从表产品中获得的引用。我想要一个查询,该查询选择按product_id与最大最终日期分组的价格,并获取值...

答案
尝试一下

以上是关于选择要按查询组搜索的列的主要内容,如果未能解决你的问题,请参考以下文章

将两个 SQL 查询的结果组合为单独的列

SQL Server查询优化和事务处理

为啥它说在 sql 查询中选择的列数错误?

将来自同一表的单独查询组合为单独的列

加入和分组依据 - 选择列表中的列无效

数据库语句——查询