今日私はquestionに尋ねましたが、多値フィールドの複雑さが増しています。私が知りたい多値フィールドを持つ同じテーブルの異なる条件で複数のレコードの数を見つける方法
ID lightness | darkness | color
------|-------------|--------------|---------
1 |10 | 20 | green, blue, yellow
2 |10 | 08 | green, purple, orange
3 |10 | 10 | black, magenta, orange
4 |20 | 05 | green, creame
5 |10 | 20 | red, purple
6 |10 | 16 | red, white
7 |33 | 20 | brown, red
8 |10 | 10 | green, blue
:
は、次のような表がある色は、色が闇20 を持っていたレコードの明るさ10
- カウントを
最終出力は
です。Color | lightness | darkness | Total ---------|-------------|------------|--------- green | 4 | 1 | 5 red | 2 | 2 | 4 Total | 6 | 3 | 9
group by
は値を失い、結果は正しくありません。例については :.value
はので、私は次の操作を行うことができ、多値フィールド上で使用することができますselect * from colortable where color.value = 2
緑、赤が
存在するすべてのレコードを表示しますselect * from colortable where color.value = 3
存在するすべてのレコードを表示します
これは本当に悪いデザインだと私は理解していますが、これを継承してデータに対してクエリを実行する必要があります。
あなたがデザインを変更する任意の能力を持っていますか?私は、あなたがこのようなテーブルを残している「スペース節約」よりも、これを適切に正規化している頭痛が増えていることを保証します。また、 '合計'行は、レポートプログラムに残すのが最も良いのですが、SQLエンジン自体にはありません。 –
[合計]行を追加しないでも問題ありません。デザインを変更することについては、人が使うアプリケーションのフロントエンドを変更することもできます。あなたの質問に答えるために、私はそれを変更するためのアクセスと意思を持っていますが、既存のデザインからクエリを抽出し、結果を抽出したいと考えました。 – Anthony