【发布时间】:2021-02-02 00:15:16
【问题描述】:
我的表
+------------------+----------+-------- ---------+
|字段1 |字段2 |字段3 |
+------------------+----------+-------- ---------+
| 1 | 10 | |
| 1 | 20 | |
| 2 | 100 | |
| 2 | 200 | |
| | | 1 |
| | | 2 |
+------------------+----------+-------- ---------|
我想创建一个显示此结果的视图
myview 想要的结果 +------------------+----------+-------- ---------+ |字段1 |字段2 |字段3 | +------------------+----------+-------- ---------+ | 1 | 10 | | | 1 | 20 | | | 2 | 100 | | | 2 | 200 | | | | 30 | 1 | | | 300 | 2 | +------------------+----------+-------- ---------|30 是 field2 的总和,其中 field1=1(field3 的值)
300 是 field2 的总和,其中 field1=2(field3 的值)
我的mysql查询是
CREATE VIEW myview AS
SELECT
field1, if(field3>0,sum(field2) where field1=field3,field2), field3
FROM mytable
但不行,我有 NULL 值而不是 30 和 300
另一种情况:嵌套情况 我的表
+------------------+----------+-------- ---------+ |字段1 |字段2 |字段3 | +------------------+----------+-------- ---------+ | 1 | 10 | 0 | | 1 | 20 | 0 | | 2 | 100 | 0 | | 2 | 200 | 0 | | 3 | | 1 | | 3 | | 2 | | 4 | | 3 | +------------------+----------+-------- ---------|myview 想要的结果
+------------------+----------+-------- ---------+ |字段1 |字段2 |字段3 | +------------------+----------+-------- ---------+ | 1 | 10 | 0 | | 1 | 20 | 0 | | 2 | 100 | 0 | | 2 | 200 | 0 | | 3 | 30 | 1 | | 3 | 300 | 2 | | 4 | 330 | 3 | +------------------+----------+-------- ---------|如何获得 30,300 和 330 的值?
【问题讨论】: