MySQL5.6で
相関サブクエリのSELECT結果を最終的なSELECTで使用したいです
例えば
mySQL
1SELECT xxxx FROM tbl WHERE col > (SELECT ... FROM ...WHERE ... = tbl.id)
の xxxx の部分をそのまま (SELECT ... FROM ...WHERE ... = tbl.id) の値にしたい等。
具体的には
id-nameが一意なテーブルで、id-nameの数(num) と そのidの総数(isAllがtrueの行のnum) との割合から50%以上の行をSELECTします
|id|name|num|isAll|
|:--|:--:|--:||
|a|あ|2||
|a|い|3||
|a||5|true|
|b|う|4||
|b||4|true|
mySQL
1SELECT xxxx FROM tbl AS tbl_1 WHERE 100*num / (SELECT num FROM tbl WHERE id = tbl_1.id AND isAll = true) > 50
xxxx に 100*num / (SELECT num FROM tbl WHERE id = tbl_1.id AND isAll = true) の値を出力したいです
相関サブクエリなので、事前に定数としての保持ができず
AS や SELECT INTO もエラーとなり
xxxxにそのままWHEREで使用したサブクエリを書けばできるのですが
何か省略したり結果を使いまわすやり方はあるのでしょうか
よろしくお願いします
回答1件
あなたの回答
tips
プレビュー