表table中有一字段type,要用一SQL语句查询type为1的记录数加上type为2的记录数的一半。
写法1:
写法2:
写法3:
当然肯定不止这三种办法,这三种只是作为参考,拓宽一下思路,很多时候办法不止一种,别一条路走到死。
写法1:
SELECT COUNT(CASE WHEN t.tasktype=1 THEN 1 END)
+ COUNT(CASE WHEN t.tasktype=2 THEN 1 END)/2
FROM table t;
写法2:
SELECT SUM(counter)
FROM ((SELECT COUNT(*) counter FROM table t WHERE t.type=1)
UNION (SELECT COUNT(*)/2 FROM table t WHERE t.type=2));
写法3:
SELECT (a+b/2)
FROM (SELECT COUNT(*) AS a FROM table t WHERE t.tasktype=1),
(SELECT COUNT(*) AS b FROM table t WHERE t.tasktype=2);
当然肯定不止这三种办法,这三种只是作为参考,拓宽一下思路,很多时候办法不止一种,别一条路走到死。