mysql - SQL : Count occurences of values in sql table efficiently

标签 mysql sql

<分区>

Possible Duplicate:
SQL : Count the number of occurences occuring on output column and calculate some percentage based on the occurences

这是测试数据/表的 url : http://sqlfiddle.com/#!2/56ffd4/1

我的表为下表生成 o/p:

(id,       resolution) 
('abc-123', 'fail'),
('abc-456', 'pass'),
('abc-789', 'pass'),
('abc-799', 'fail'),
('abc-800', 'pass'),
('abc-900', 'pass');

我的脚本 o/p 是:

id          RESOLUTION  TS              @PREV   C   RES
abc-123     fail    July, 02 2012         1     1   -
abc-456     pass    July, 02 2012         2     0   50.00%
abc-789     pass    July, 02 2012         1     0   100.00%
abc-799     fail    July, 02 2012         1     1   -
abc-800     pass    July, 02 2012         2     0   50.00%
abc-900     pass    July, 02 2012         0     0   100.00%

这是 o/p 脚本:

SELECT st.*, 
       @prev:=@counter + 1,
       @counter:= CASE 
         WHEN st.resolution = 'pass'
         THEN 0
         ELSE @counter + 1
       END c,
       CASE WHEN @counter = 0 
            THEN CONCAT(FORMAT(100/@prev, 2), '%') 
            ELSE '-' 
       END res
  FROM so_test st, (SELECT @counter:=0) sc

我需要在上面的输出表中附加两列来计算通过值和失败值的出现次数:

id          RESOLUTION  TS              @PREV   C            fail   pass
    abc-123     fail    July, 02 2012         1     1   -        1
    abc-456     pass    July, 02 2012         2     0   50.00%          1
    abc-789     pass    July, 02 2012         1     0   100.00%         1
    abc-799     fail    July, 02 2012         1     1   -        1
    abc-800     pass    July, 02 2012         2     0   50.00%          1
    abc-900     pass    July, 02 2012         0     0   100.00%         1

最佳答案

好吧,如果您只想在输出表末尾指定通过和失败列,那么请在后面加上一个逗号

END res 

并在其后添加:

CASE WHEN st.resolution = 'fail'
            THEN 1
            ELSE NULL
END fail,
CASE WHEN st.resolution = 'pass'
            THEN 1
            ELSE NULL
END pass

不确定您的列中的空白是什么,但我只是将它们设置为 NULL。

关于mysql - SQL : Count occurences of values in sql table efficiently,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11302019/

相关文章:

mysql - 在 Openshift 上部署应用程序时出错

MySQL 将数字转换为字母

python - 使用 Python mysql.connector 成功插入后 MySQL 数据丢失

php - 合并来自 PHP 的多个 MySQL 结果,使用相同的排序规则/排序

PHP/MySQL - 从后台运行操作/处理运行时间较长的方法

mysql - 在 MySQL 中创建 View 时出错

javascript 未捕获类型错误 : Cannot read property 'date_notify' of undefined

sql - 你能解释一下下面的 SQL (postgres) 代码吗?

mysql - 解释这个使用变量显示数据库列表的 SQL 查询

php - 空白/空搜索表单字段