同じテーブルの異なる場所で2つのカウントを組み合わせます

mysql

これを行うより良い方法はありますか?

'text1'としてSELECT(SELECTカウント(*)FROM 'tbl` WHERE' status` = 0)、(SELECT count(*)FROM 'tbl` WHERE' status`> 0) 'text2'

text1とtext2はヘッダーです。

  3  0


ベストアンサー

どうですか?

sum(ゼロ(if(status = 0,1,0))を選択し、sum(if(status> 0,1,0))をtblから大きい値に設定します。

必ずしも良いわけではないかもしれませんが、あなたのメンタルアーセナルに持っていることは有用なイディオムです!

4


簡潔さとコードの読みやすさを向上させるために、2つの異なるクエリを使用します。 2つのクエリを使用することで同じ結果とより読みやすいコードを実現できる場合は、クエリを組み合わせるために巧妙なハックを使用する利点はそれほどありません。

1


これは別の方法です:

SELECT COUNT(NULLIF( `status` = 0、0))、COUNT(NULLIF(` status`> 0、0))FROM `tbl`

1


これにより異なる出力が得られますが、sortaは機能します。

SELECT 'status`> 0 AS' stat 'として、COUNT(*)を' tbl` GROUP BY statから

出力:

stat | COUNT(*)------------------------------- 0 | (status = 0の場合はカウント)1 | (状況> 0の場合はカウント)

0


タイトルとURLをコピーしました