3つの列、すべて整数、最初のid
、2 番目X
、3 番目のY
があるX
としましょう。1
0
Y
1
0
=================
| id | X | Y |
=================
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
| 2 | 0 | 0 |
| 2 | 0 | 1 |
| 2 | 1 | 1 |
| .... | | |
=================
私がやりたいことは、基本的X / Y
にパーセンテージとして調べて見つけること
です:
(total number of times an instance occurred / total number of opportunities for that to occur, and this all to be grouped by id) * 100
私が持っているクエリは機能します(ただし、より効率的な方法があるかどうかは疑問です)
select id, (CASE WHEN ( sum(Y)) <> 0 THEN ((sum(X))/( sum(Y))) ELSE 0 END) ) * 100) from table GROUP BY id
いくつかの方法でより効率的かどうか疑問に思います
sum(cast(case where Y <> 0 THEN (X/Y) ELSE 0 END 0...