4
テーブルを正規化する方法はないので、私が得たもので作業する必要があることに注意してください。表では、行は(ジェーンは1、などがあり、ジョーは2ウィジェットを持っている)私はウィジェットの合計数をカウントされませんしたいのですがこれは何MySQL:行の空でないフィールドを数え、同じ値を数える方法は?
name | widget1 | widget2 | widget3
------+-----------+----------+----------
Joe | blue | red |
Jane | green | |
Bob | red | red | green
Susy | green | green |
と同様であり、また、数を数えます正常に動作します
SELECT (
SUM(IF(widget1 <> "", 1, 0)) +
SUM(IF(widget2 <> "", 1, 0)) +
SUM(IF(widget3 <> "", 1, 0))
) AS totalWidgets FROM table
:
はここウィジェットの合計数をカウントするために私のコードです - 同様のウィジェットが(スージーは2 widgets- 2グリーンなどがあり、2赤と1つの緑のボブは3つのウィジェットを持っています)。しかし、これを行うよりよい方法はありますか?また、同様の値の数を数えるために、私はそれに似たようなことができると確信していますが、値が等しいかどうかを確認してください...しかし、かなり長く畳み込まれる可能性があります。もっと直接的なアプローチはありますか?
Brilliant!完璧に働いた。 HeeHaw! – TerryMatula