MySQL求int、varchar里的最大、最小值

44 篇文章 4 订阅
42 篇文章 3 订阅

    在MySQL中,有时需要对某个字段求最大值、最小值。比如,对字段id求最大值、最小值。这里以student表格为例,求取id字段的最大值、最小值,如图(1)所示。

图(1) 求id的最大值、最小值

1、int字段的最大值、最小值

    若字段id是int类型,则SQL语句如下:

-- 1.1) 在student表格里,求取id的最大值
select max(id) from student;

-- 1.2) 在student表格里,求取id的最小值
select min(id) from student;

如图(2)、图(3)、图(4)所示:

图(2) int类型的id

图(3) 使用max()求最大值

图(4) 使用min()求最小值

2、varchar字段的最大值、最小值

    varchar字段可以表示很多字符,这里只考虑varchar字符是0~9的情况,即 varchar --> int的情况。
    若字段id是varchar类型,则SQL语句如下:

## 2.1)在student表格里,求取id的最大值
SELECT MAX(CAST(id AS UNSIGNED)) FROM student;

## 2.2)在student表格里,求取id的最小值
SELECT MIN(CAST(id AS UNSIGNED)) FROM student;

如图(5)、图(6)、图(7)所示:

图(5) varchar类型的最大值、最小值

图(6) 求varchar的最大值

图(7) 求varchar的最小值

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL中的窗口函数是指在查询结果中对一组行进行计算的函数,而不是对单个行进行计算的函数。窗口函数可以用来执行聚合操作,例如计算每个分组中的平均值、总和、最大值、最小值等。 下面是一个使用COUNT函数作为窗口函数的示例: 假设我们有以下表格: ``` CREATE TABLE sales ( id INT PRIMARY KEY, product VARCHAR(50), sale_date DATE, amount DECIMAL(10,2) ); INSERT INTO sales VALUES (1, 'Product A', '2021-01-01', 100.00), (2, 'Product A', '2021-01-02', 200.00), (3, 'Product B', '2021-01-01', 150.00), (4, 'Product B', '2021-01-02', 250.00), (5, 'Product B', '2021-01-03', 300.00), (6, 'Product C', '2021-01-01', 50.00), (7, 'Product C', '2021-01-02', 70.00), (8, 'Product C', '2021-01-03', 90.00); ``` 我们想要计算每个产品在每个销售日期的销售额和该产品在每个销售日期的总销售额。我们可以使用窗口函数来计算总销售额。 以下是使用窗口函数计算每个产品在每个销售日期的销售额和总销售额的示例查询: ``` SELECT product, sale_date, amount, COUNT(*) OVER (PARTITION BY product, sale_date) AS row_count, SUM(amount) OVER (PARTITION BY product, sale_date) AS total_sales FROM sales; ``` 在这个查询中,我们使用了COUNT作为窗口函数来计算每个产品在每个销售日期的行数。我们使用PARTITION BY子句将结果分组为每个产品和销售日期的组。这样,我们就可以在查询结果中看到每个产品在每个销售日期的销售额和总销售额。 查询结果如下所示: ``` product sale_date amount row_count total_sales ------------------------------------------------------- Product A 2021-01-01 100.00 1 100.00 Product A 2021-01-02 200.00 1 200.00 Product B 2021-01-01 150.00 1 150.00 Product B 2021-01-02 250.00 1 250.00 Product B 2021-01-03 300.00 1 300.00 Product C 2021-01-01 50.00 1 50.00 Product C 2021-01-02 70.00 1 70.00 Product C 2021-01-03 90.00 1 90.00 ``` 在这个查询结果中,我们可以看到每个产品在每个销售日期的销售额和该产品在每个销售日期的总销售额。我们还可以看到每个分组中的行数,这是使用COUNT作为窗口函数计算的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值