帮我写一段sql 逻辑是有一个ii表 有 id day quantity 三个字段查询按照day分组 分组后每个组中都有id=d8和id=d13的字段id=d8的quantity减去id=d13的quantity
时间: 2023-06-03 22:03:06 浏览: 60
好的,根据您的要求,我可以帮您写一个SQL语句来实现这个逻辑,具体如下:
```
SELECT day, (SUM(CASE WHEN id = 'd8' THEN quantity ELSE 0 END) - SUM(CASE WHEN id = 'd13' THEN quantity ELSE 0 END)) AS difference
FROM ii
GROUP BY day
```
这个语句会首先按照day进行分组,然后对于每个分组,计算id为d8的quantity与id为d13的quantity之间的差异,并将结果作为difference列返回。
希望这个答案能够帮助您,如果您有其他问题,可以随时问我哦~
相关问题
帮我写一段sql 逻辑是有一个ii表 有 id day quantity 三个字段查询按照day分组 分组后id=d8的quantity减去id=d13的quantity
:好的,以下是你需要的SQL语句:
```
UPDATE ii AS i1
INNER JOIN (
SELECT day,
quantity AS q_d8
FROM ii
WHERE id = 'd8'
) AS i2 ON i1.day = i2.day
INNER JOIN (
SELECT day,
quantity AS q_d13
FROM ii
WHERE id = 'd13'
) AS i3 ON i1.day = i3.day
SET i1.quantity = i2.q_d8 - i3.q_d13
WHERE i1.id = 'd8'
```
以上查询会做以下操作:
1. 选择day和i2(即id=d8的行)的quantity重命名为q_d8,i3(即id=d13的行)的quantity重命名为q_d13。
2. 找到所有的day列值,该列下id等于d8的行,并将其quantity设置为q_d8减去q_d13。
希望这可以帮助到您!
帮我写一段sql 逻辑是有一个ii表 有 id day quantity 三个字段按照day分组 分组后id=d8的quantity减去id=d13的quantity
以下是您需要的 SQL 语句:
UPDATE ii
SET quantity = quantity_d8 - quantity_d13
FROM (
SELECT
day,
quantity AS quantity_d8,
LAG(quantity) OVER (PARTITION BY day ORDER BY id ASC) AS quantity_d13
FROM ii
WHERE id IN ('d8', 'd13')
) AS sub
WHERE ii.day = sub.day AND ii.id = 'd8'