SELECT
CASE
WHEN finish = 'Y'
THEN 'OK'
ELSE 'Wait'
END AS 'Status',
COUNT( 1 ) AS total_count
FROM YourTable
GROUP BY finish
Status total_count
Wait 3
OK 2
※ 引述《averywu (看文不要只会用横的看)》之铭言:
: 数据库名称:MySql
: 数据库版本:5.1
: 内容/问题描述:
: 我有一个 TABLE,内容值大约如下:
: Id,Name,Finish
: 1 ,AAA ,Y
: 2 ,BBB ,N
: 3 ,CCC ,N
: 4 ,DDD ,N
: 5 ,EEE ,Y
: 我想一次把Y跟N的资料录做加总并显示出来,我用的查询语句如下:
: SELECT
: DECLARE Ok INT,
: DECLARE Wait INT,
: IF(Finish='Y',@Ok:=@Ok+1) AS Finish,
: IF(Finish='N',@Wait:=@Wait+1) AS Waiting
: FROM MyTable
: 当然,结果跟我想的不同,不会动。
: 我要如何去下变量去计算呢?
: 我想达到的结果以上面的例子来说,是取回
: Ok,Wait 二栏,然后值是 2,3
: 另外,在查询式里的变量设定到底是 DECLARE 还是 SET 啊?
: 感谢指导