ホームページ  >  に質問  >  本文

SQL: ブール値を持つ複数のフィールドを含む集計ピボット ビューが必要です

与えられた: 履物に関するさまざまな属性を、その属性の履物が利用可能かどうかを示す複数のブール値フィールドに含むソース テーブルがあります。 1=利用可能、0=利用不可。サンプルデータは次のとおりです -

製品ID s_7 s_8 s_9 s_10 c_white c_black c_blue c_ブラウン c_other t_靴 t_サンダル t_スリッパ ...
001 0 1 0 1 1 1 0 1 0 1 0 0 ...
002 1 1 0 0 1 0 1 0 0 0 0 1 ...
003 0 1 1 0 0 1 1 0 1 1 0 0 ...
004 0 0 1 1 0 0 1 1 0 0 1 1 ...
005 1 0 1 0 1 1 1 0 0 0 0 1 ...
006 0 1 1 1 0 1 0 1 1 1 0 0 ...
007 0 0 1 1 1 1 0 0 0 1 0 0 ...
008 0 1 1 0 0 1 0 1 1 0 0 1 ...
009 1 1 1 0 0 0 1 0 1 0 1 0 ...
... ... ... ... ... ... ... ... ... ... ... ... ... ...

o_casual、o_formal、o_ethnic、m_canvas、m_leather、m_silicon、p_plain、p_textured、p_funky などの属性列もいくつかあり、すべての属性列はそれぞれの prod_id のバイナリ値を持ちます。 50,000 を超える prod_id があります。

######聞く:### 属性の各ペアの可用性の回転分布が必要であり、セル値は交差部分にある特定のペアの prod_id の数を示す必要があります。 たとえば、属性「s_8」および「c_black」を持つ prod_id のカウントは 4 です (s_8=1 および c_black=1)。以下のビューに表示されるはずです。これは、さらなる分析に役立つ可能性があります。

属性s_7s_8s_9s_10c_whitec_blackc_bluec_ブラウンc_othert_靴t_サンダルt_スリッパ...s_7322021301012...s_8264224334312...s_924325434323...s_100....................................c_white2......c_black1......c_blue3......c_ブラウン0......c_other1......t_靴0......t_サンダル1......t_スリッパ2................................................SQL は初めてです。目的のピボット ビューを実現できるロジックを見つけるのを手伝ってください。データが大きいため、スケーラブルなソリューション
###7###
直観的には、出力テーブルは対角線にミラーリングされており、対角線のセルにはその特定の属性の prod_id の合計数が含まれます。
を検討してください。質問が不明瞭で、明確にするために説明が必要な場合は、お知らせください。

P粉969253139P粉969253139408日前558

全員に返信(1)返信します

  • P粉022723606

    P粉0227236062023-09-08 15:32:39

    -

    のようなクエリを使用できます。 リーリー

    選択した言語で簡単に構築できます。 PHP を使用した簡単な例を次に示します -

    リーリー

    返事
    0
  • キャンセル返事