有一张sql表,字段有id,date,price,现在要去除每天(date字段,具体到天)price的最大值和最小值,然后求平均值
时间: 2024-02-24 08:56:55 浏览: 96
去掉一个最高分一个最低分,求平均值
5星 · 资源好评率100%
赵六', '信用卡账户', '女', 10000),
(1005, '钱七', '定期账好的,你的问题是如何用 SQL 语句实现对每天 `price` 的最大值和最小户', '男', 100000),
(1006, '孙八', '定期账户', '女', 200000值的去除,并求出平均值。以下是一种实现方式:
```sql
SELECT date, AVG(price) AS),
(1007, '周九', '定期账户', '男', 500000),
(1008, '吴十 avg_price
FROM (
SELECT id, date, price,
ROW_NUMBER() OVER (PARTITION BY date ORDER BY price ASC) AS', '定期账户', '女', 1000000);
-- 插入存款明细
INSERT INTO Deposit (account_no min_rank,
ROW_NUMBER() OVER (PARTITION BY date ORDER BY price DESC) AS max_rank
FROM your_table
) t, serial_no, amount, deposit_date) VALUES
(1001, 1, 1000, '2022-01-01
WHERE min_rank > 1 AND max_rank > 1
GROUP BY date
```
解释如下:
1. 内部'),
(1001, 2, 2000, '2022-01-02'),
(1001, 3, 300子查询 `t` 用于计算每天 `price` 的最大值和最小值,并给它们分别0, '2022-01-03'),
(1002, 1, 4000, '2022-01-01'),
打上排名。
2. 外部查询用 `AVG` 函数计算每天剩余 `price` 的平均值(1002, 2, 5000, '2022-01-02'),
(1002, 3, 6000,并按照 `date` 字段进行分组。
3. `WHERE` 子句用于排除每天最大值和, '2022-01-03'),
(1003, 1, 1000, '2022-01-01'),
(最小值,排除方式为保留排名大于 1 的数据。
希望这个 SQL 语句对你有所帮助。
阅读全文