钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读740239
首页 SQL 正文内容

sql取多个字段的最大值

钟逸 SQL 2025-05-25 18:03:35 4

在SQL中,我们可以使用MAX()函数来获取指定字段中的最大值。当需要获取多个字段的最大值时,可以使用以下两种 :

** 1:使用CASE WHEN语句**

sql

SELECT

MAX(CASE WHEN field1 THEN value1 END) AS max_field1,

MAX(CASE WHEN field2 THEN value2 END) AS max_field2,

...

FROM table;

其中:

* field1 , field2 :要获取最大值的字段。

* value1 , value2 :对应的值。

**优点:**易于编写。

**缺点:**当字段较多时,代码会变得冗长。

** 2:使用GREATEST()函数**

sql

SELECT

GREATEST(field1, field2, ...) AS max_value

FROM table;

其中:

* field1 , field2 :要获取最大值的字段。

**优点:**简洁。

**缺点:**仅能比较两个以上字段。

**示例**

假设有一个表名为 products ,其中包含以下字段:

* id :产品ID

* name :产品名称

* price :产品价格

* quantity :产品数量

如果我们要获取 price 和 quantity 的最大值,可以使用以下查询:

** 1:**

sql

SELECT

MAX(CASE WHEN field = 'price' THEN value END) AS max_price,

MAX(CASE WHEN field = 'quantity' THEN value END) AS max_quantity

FROM products;

** 2:**

sql

SELECT

GREATEST(price, quantity) AS max_value

FROM products;

这两种 都会返回以下结果:

max_price | max_quantity

----------+-------------

100 | 50

文章目录
    搜索