首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个语句的最大值

多个语句的最大值
EN

Stack Overflow用户
提问于 2020-04-01 15:09:57
回答 3查看 43关注 0票数 0
代码语言:javascript
复制
+----+-------+-----------+---------------+
| ID | Name  | Orderdate | Catalog Price |
+----+-------+-----------+---------------+
| 7b | 34-10 | NULL      |          3000 |
| 7b | 34-10 | NULL      |          3000 |
| 7b | 34-10 | NULL      |          2000 |
| 7b | 35-12 | PL-17     |          3000 |
| 8b | 35-11 | PL-18     |          2000 |
| 8b | 34-13 | PL-18     |          2000 |
| 8b | 34-14 | PL-18     |         2000  |
| 8b | 34-15 | PL-18     |         2000  |
| 9b | 35-12 | PL-19     |          2000  
| 9b | 35-11 | PL-19     |          2000 |
| 9b | 34-18 | PL-19     |          2000 |
| 9b | 34-19 | PL-19     |          2000 |
| 9b | 34-20 | PL-19     |          2000 |
+----+-------+-----------+---------------+

我需要Id以7开头的产品列表,其中名称以34开头,其中Orderdate = null,只有目录价格最高的记录

输出应该是

代码语言:javascript
复制
 ID Name    Orderdate   Catalog Price
7b  34-10   NULL    3000
7b  34-10   NULL    3000

我想我的解释不清楚,所以在此

步骤1 id从7开始

代码语言:javascript
复制
 ID Name    Orderdate   Catalog Price
    7b  34-10   NULL    3000
    7b  34-10   NULL    3000
    7b  34-10   NULL    2000
    7b  35-12   PL-17   3000

*第2步:*名字以34开头

代码语言:javascript
复制
 ID Name    Orderdate   Catalog Price
    7b  34-10   NULL    3000
    7b  34-10   NULL    3000
    7b  34-10   NULL    2000

步骤3,其中orderdate =null

代码语言:javascript
复制
ID  Name    Orderdate   Catalog Price
    7b  34-10   NULL    3000
    7b  34-10   NULL    3000
    7b  34-10   NULL    2000

第四步:以最高的目录价格

代码语言:javascript
复制
 ID Name    Orderdate   Catalog Price
    7b  34-10   NULL    3000
    7b  34-10   NULL    3000
EN

回答 3

Stack Overflow用户

发布于 2020-04-01 15:20:32

请给你的数据库贴上标签。以下是Oracle可以尝试的一些内容:

代码语言:javascript
复制
SELECT id,name,orderdate,catalog_price
FROM TABLE a
WHERE id LIKE '7%' AND name LIKE '34%' AND orderdate IS NULL
  AND catalog_price = (SELECT max(catalog_price) FROM TABLE b 
  WHERE a.id=b.id AND a.name=b.name)
票数 2
EN

Stack Overflow用户

发布于 2020-04-01 15:29:00

代码语言:javascript
复制
SELECT * FROM Table
WHERE 
Id LIKE '7%' 
AND Name LIKE '34%' 
AND OrdeDate IS NULL
AND Catalog Price = ( SELECT MAX(Catalog Price) FROM Table )

不太确定什么是代表

代码语言:javascript
复制
only the records with highest catalog price

如果表内的最高价格比我的答案正确,如果按id分组的最高价格是正确的,那么@django-unchained答案是正确的。

票数 0
EN

Stack Overflow用户

发布于 2020-04-01 15:41:36

如果您想要每个组的最大catalog_price (id、name、orderdate),则需要以下内容

代码语言:javascript
复制
select id, name, orderdate, max(catalog_price) as catalog_price
from my_table
where like'7%' and name like'34%' and orderdate is null
group by id, name, orderdate

如果你不关心这群人,你想要这个

代码语言:javascript
复制
select id, name, orderdate,  catalog_price
from my_table
where id like'7%' and name like'34%' and orderdate is null
and catalog_price = (select max(catalog_price) from my_table)

演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60974179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档