`
soulshard
  • 浏览: 102249 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个SQL语句的三种写法

SQL 
阅读更多
表table中有一字段type,要用一SQL语句查询type为1的记录数加上type为2的记录数的一半。

写法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);


当然肯定不止这三种办法,这三种只是作为参考,拓宽一下思路,很多时候办法不止一种,别一条路走到死。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics