Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL:选择列并从组中排除_Postgresql - Fatal编程技术网

PostgreSQL:选择列并从组中排除

PostgreSQL:选择列并从组中排除,postgresql,Postgresql,这个问题可能以不同的形式提出,但我找不到答案 我有表订单 日期、订购数量、单位成本、产品型号、标题 我想: SELECT model_number, title, SUM(unit_cost_cents / 100.00 * quantity_ordered) as total FROM orders GROUP BY model_number HAVING SUM(quantity_submitted) > 0 ORDER BY total DESC 但它也需要按标题进

这个问题可能以不同的形式提出,但我找不到答案

我有表
订单

日期、订购数量、单位成本、产品型号、标题

我想:

SELECT 
  model_number,
  title,
  SUM(unit_cost_cents  / 100.00 * quantity_ordered) as total
FROM orders
GROUP BY model_number
HAVING SUM(quantity_submitted) > 0
ORDER BY total DESC
但它也需要按
标题进行分组


我的问题是我的
标题随着时间的推移而改变。我想保留标题,只需显示/选择最新的
标题
,而不按标题分组,这会使数字有所不同。

您可以使用子查询获取最新的标题:

SELECT 
  model_number,
  (select max(title) from orders where date = (
    select max(date) from orders where model_number = o.model_number)
  ) title,
  SUM(unit_cost_cents  / 100.00 * quantity_ordered) as total
FROM orders o
GROUP BY model_number 
HAVING SUM(quantity_submitted) > 0
ORDER BY total DESC

我使用了
select max(title)
而不是
select title
,以确保子查询不会返回超过1行(以防万一)。

您可以使用子查询获取最新的标题:

SELECT 
  model_number,
  (select max(title) from orders where date = (
    select max(date) from orders where model_number = o.model_number)
  ) title,
  SUM(unit_cost_cents  / 100.00 * quantity_ordered) as total
FROM orders o
GROUP BY model_number 
HAVING SUM(quantity_submitted) > 0
ORDER BY total DESC

我使用了
select max(title)
而不是
select title
,以确保子查询返回的行数不会超过1行(以防万一)。

product\u title在功能上取决于型号,所以它首先不应该在这里。@wildplasser主要是,但是标题会随着时间的推移而变化,所以我们在这里跟踪这些变化。你能告诉我如何获取最新的
标题吗?不,我不能。如果我有两个订单,你能定义最近的一次吗;本月1份,上月1份。最新的标题可能与第一个标题略有不同。对于这个特定的报告,我想对销售进行分组,但显示1个标题,第一个或最近的。产品标题在功能上取决于型号,所以它不应该放在第一位。@wildplasser它主要是,但标题会随着时间的推移而变化,所以我们在这里跟踪这些变化。你能告诉我如何获取最新的
标题吗?不,我不能。如果我有两个订单,你能定义最近的一次吗;本月1份,上月1份。最新的标题可能与第一个标题略有不同。对于这个特定的报告,我想对销售进行分组,但显示1个标题,第一个或最近的标题。