mysql过滤器null sum

时间:2018-01-08 22:30:47

标签: mysql null sum

最小的例子

我有一个table1,其中有两列(idname

1 asdf
2 fdsa
3 qwerty
4 ytrewq

我还有一个table2,其中有三列(idrefnum

1 1 0.1
2 1 5.0
3 1 -3.9
4 2 2.4
5 2 -2.3
6 3 1.7

以下查询:

SELECT
  table1.id,sum(num),
  table1.name as anumber
FROM table1
LEFT JOIN table2 ON table1.id=table2.ref
GROUP BY table1.id;

给我一​​个结果:

1 1.2 asdf
2 0.1 fdsa
3 1.7 qwerty
4 NULL ytrewq

我试过的查询:

SELECT
  table1.id,sum(num) as anumber,
  table1.name
FROM table1
LEFT JOIN table2 ON table1.id = table2.ref
GROUP BY table1.id
HAVING anumber is null or anumber >= 1.0;

我的期望是我应该看到这些结果

1 1.2 asdf
3 1.7 qwerty
4 NULL ytrewq

但实际上我根本没有得到任何结果。我怎样才能在这里格式化我的查询?

好的,所以查询实际上按预期工作。我错过了我的实际设置中的一些东西,这使得它无法正常工作。 期望的结果是查找在另一个表指定的属性上具有最小值的项目,或者该属性完全未知的项目。

1 个答案:

答案 0 :(得分:0)

它具有您想要的确切输出:

SELECT
  table1.id,sum(table2.num) as t2,
  table1.name as anumber
FROM table1
LEFT JOIN table2 ON table1.id=table2.ref
GROUP BY table1.id
having t2 is null or t2 >= 1.0;     

输出

id | t2 | anumber
1    1.2   asdf
3    1.7   qwerty
4    NULL  ytrewq