当前位置: 首页 > 知识库问答 >
问题:

由客户选择其最近订单中最贵产品的名称

文国发
2023-03-14

我有两张桌子:

  • 包含order_id、order_date、customer_id、product_id和收入的订单
  • 包含product_id和PRODUCT_NAME的产品

我想做的是由客户选择他最近订购的最贵产品的名称

SELECT MAX(o.ORDER_DATE), MAX(o.REVENUE) , PRODUCT_NAME
FROM orders o 
JOIN products p ON o.PRODUCT_ID = p.PRODUCT_ID
GROUP BY CUSTOMER_ID, ORDER_ID, PRODUCT_NAME

共有2个答案

翟修永
2023-03-14

声明的数据模型没有关于“最贵产品”的信息。让我假设products实际上有一个“price”这样的列。

我想我会建议窗口功能:

SELECT op.*
FROM (SELECT o.*, p.*
             ROW_NUMBER() OVER (PARTITION BY o.customer_id ORDER BY o.order_date DESC, p.price DESC) as seqnum
      FROM orders o JOIN
           products p
           ON o.PRODUCT_ID = p.PRODUCT_ID
     ) op
WHERE seqnum = 1;

这将为每个客户返回一行。如果存在并列,并且需要所有行,请将row_number()更改为rank()。注意,对于要在结果集中包含哪些列,此方法为您提供了很大的灵活性。

魏书
2023-03-14
SELECT DISTINCT
       MAX(o.order_date) OVER (PARTITION BY customer_id) order_date, 
       FIRST_VALUE(o.revenue) OVER (PARTITION BY customer_id 
                                    ORDER BY order_date DESC, revenue DESC) revenue, 
       FIRST_VALUE(product_name) OVER (PARTITION BY customer_id 
                                       ORDER BY order_date DESC, revenue DESC) product_name       
FROM orders o 
JOIN products p USING (product_id)
 类似资料:
  • 问题内容: 好的,我有一个关系,该关系存储两个键,一个产品ID和一个属性ID。我想弄清楚哪种产品与给定的产品最相似。(属性实际上是数字,但这会使示例更加混乱,因此已将其更改为字母以简化视觉表示。) Prod_att 最初,这似乎很简单,只需选择产品具有的属性,然后计算每个产品共享的属性数。然后将其结果与一个产品具有的属性数量进行比较,我可以看到两个产品的相似程度。这适用于相对于其比较产品具有大量属

  • 现在来考虑 Customer,Order, LineItem 和 Product 关系的模型。Customer 和 Order 之间 是一对多的关系,但是我们怎么来描述 Order / LineItem / Product呢? 我可以把 LineItem 作为描述 Order 和 Product 多对多关系的关联类,在 Hibernate,这叫做组合元素。 映射文件如下: <hibernate-

  • 我正在尝试使用Altova XMLSpy和XQuery1.0为每个客户返回最近的订单。 在SQL中,查询如下所示: 它返回16行,但我无法获得类似于XQuery中的工作。 我尝试了多种不同的代码,我认为我得到的最接近的代码是: 对于XML从MS Access导出的糟糕的标记名表示歉意。 请救命!提前道谢。 编辑:在尝试JoeMFB的解决方案后,当我只需要最近的(或最大日期)时,我会收到每个客户的所

  • 问题内容: 我有一张用户签入和签出时间的表(“ lms_attendance”),如下所示: 我正在尝试创建此表的视图,该表将仅输出每个用户ID的最新记录,同时给我“ in”或“ out”值,如下所示: 到目前为止,我已经很接近了,但是我意识到视图将不接受子查询,这使它变得更加困难。我得到的最接近的查询是: 但是我得到的是: 这很接近,但并不完美。我知道最后一个分组依据不应存在,但是如果没有它,它

  • 是否可能只得到最新的产品的木商订单?我知道笔记作为例子是可能的: 我能为订单中的产品做些类似的吗?

  • https://www.hackerrank.com/challenges/minimum-average-waiting-time/problem这是一个hackerrank问题的链接。我正在努力。它通过了一些测试用例,失败了一些。我在STL中使用了内置的优先级队列模板。代码如下, 我针对这个问题查找了一个叫做非抢占式优先调度的算法并实现了它。我的疑问:这个调度算法是解决问题的正确算法吗?我想知