web-dev-qa-db-ja.com

RSForm Proの結果に基づいてPlotALotグラフの凡例にゼロ値を表示する方法は?

バックエンドでは、RSForm Proから生成されたいくつかの調査結果をコンパイルしており、PlotALot円グラフを使用して統計をグラフィカルに表示したいと考えています。

私のフォームには、この特定の質問に対して4つの可能な値があります:AustraliaNewZealandOceania、およびOther

Plot1タブのsql textareaで次のクエリを開始しました。

SELECT FieldValue, COUNT(1)
FROM jprefix_rsform_submission_values
WHERE FormId = 8
  AND FieldName = 'Location'
GROUP BY 1
ORDER BY 2 DESC

ただし、これはカウントがゼロの場所を省略します。すべての可能な場所が確実に含まれるようにするために、サブクエリを介してデフォルトの場所のテーブルを導出し、RSFormデータを派生テーブルに結合しました。

SELECT 
    Location,
    COUNT(FieldValue)
FROM (
    (SELECT 'Australia' AS Location)
    UNION
    (SELECT 'New Zealand')
    UNION
    (SELECT 'Oceania')
    UNION
    (SELECT 'Other')) AS defaults
LEFT JOIN jprefix_rsform_submission_values
    ON FormId = 8
       AND FieldName = 'Location'
       AND FieldValue = REPLACE(Location, ' ', '')
GROUP BY 1
ORDER BY 2 DESC

これにより、正しい結果セットが提供されます。

Location    |  COUNT(FieldValue)
--------------------------------
Australia   |       46
Other       |        7
New Zealand |        0
Oceania     |        0

問題は、このsqlをPlotAlotにフィードすると、次のように表示されるだけです。

enter image description here

PlotAlotが凡例のゼロ値を省略しないようにするにはどうすればよいですか?

2
mickmackusa

SELECT句の2番目の列を修正して、非常に小さいゼロ以外の10進数値を生成することで、これをなんとか解決しました。

_IF(COUNT(FieldValue) > 0, COUNT(FieldValue), 0.1)
_

レコードの場合、GREATEST(COUNT(FieldValue), 0.1)は実質的に同じ結果セットを持ち(技術的には、すべての結果が浮動小数点値になります)、グラフィック出力は同じです。

その結果、場所が凡例に表示され、_0.1_の値は_0_に丸められます。

enter image description here


小さな値が凡例の「その他」ラベルにまとめられることを処理する潜在的に関連する問題として、 sliceVisibilityThreshold 値を_0_に設定することで解決できる場合があります。

これを実装するには、PlotALotのチャートエディターに移動し、[Extra]タブをクリックして、[Extra Options]フィールド内に_sliceVisibilityThreshold: 0_と入力します。

1
mickmackusa