如何进行SQL查询

时间:2018-10-09 11:22:32

标签: mysql sql

我是SQL的新手,所以在创建查询时遇到了一些麻烦。 我的任务是:选择1989年销售量最大,折扣最高的产品的描述。Product TablePrice table。我想做的是

  1. 通过减去list_price-min_price

    选择最大折扣
    select max(list_price - min_price) from PRICE
    
  2. 选择描述

    select description from product 
    join price on PRODUCT.product_id = PRICE.product_id 
    where start_date = '1989'
    

问题是我无法在一个查询中完成

3 个答案:

答案 0 :(得分:0)

您尝试如下

   select * from 
    (
    select description from product 
    join price 
    on PRODUCT.product_id = PRICE.product_id 
    where start_date = '1989'
    ) t1
    cross join (select max(list_price - min_price) as p from PRICE) t

答案 1 :(得分:0)

  • n second在两个表之间使用Inner Join,并计算product_id
  • 使用ist_price - min_price AS discount
  • 过滤结果集以仅包含1989年的价格
  • 将结果集视为Derived Table,并使用where YEAR(start_date) = 1989值以降序对其进行排序。使用discount查找具有1989年最高折扣的产品。

对于MySQL,请尝试以下操作:

Limit 1

答案 2 :(得分:0)

select top 1
   product.product_id,
   description,
   max_disc = max(list_price - min_price) 
from PRICE 
join product on product.product_id = PRICE.product_id 
where start_date = '1989'
group by product.product_id, description
order by max_disc desc