我正在尝试使用Python在SQL查询中进行算术运算(我正在使用sqlite3)。 我的SQL表(TwTbl)有一个coloumn geo_count(数字)。我必须计算Geo_count Coloumn的数字大于0的条目数,并计算Geo_count = 0的条目数,然后减去它们。即。
(number of entries with Geo_count = 0) - (number of entries with Geo_count > 0)
我必须为此编写一个嵌套的select语句。
import sqlite3
c.execute("SELECT (COUNT(SELECT geo_count FROM TwTbl WHERE geo_id == 0) –
COUNT(SELECT geo_count FROM TwTbl WHERE geo_count IS <> 0)) FROM TwTbl").fetchall()
这给了我一个语法错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
sqlite3.OperationalError: near "SELECT": syntax error
我尝试用另一种方式编写此查询。它没有给我任何语法错误,但没有给出预期的结果。如果我运行以下查询,我得到0。
c.execute("select count(geo_count) from TwTbl where geo_count == 0 -
(select count(geo_count) from TwTbl where geo_count <> 0)").fetchall()
虽然如果我单独运行查询,结果如下:
c.execute("select count(geo_count) from TwTbl where geo_count <> 0").fetchall()
>>> 13
c.execute("select count(geo_count) from TwTbl where geo_count ==0").fetchall()
>>> 880
我不确定正确的语法。不知道我做错了什么。
答案 0 :(得分:1)
SELECT SUM(geo_count==0) - SUM(geo_count<>0) FROM TwTbl