0

有効な mysql クエリがあります。

SELECT  COUNT(*), c.description
FROM name_loc f
INNER JOIN countries       c ON f.fk_cnty_id  = c.id
INNER JOIN identifiers     i ON f.fk_ident_id = i.id
GROUP BY f.fk_cnty_id;

戻り値:

+------+----------------+
| cnt  | description    |
+------+----------------+
| 1093 | AUSTRALIA      |
|  235 | BELGIUM        |
|  474 | BERMUDA        |

縦軸がカウント、横軸が郡であるヒストグラムをプロットできるステートメントが必要です。

私はこれがうまくいくと思った:

totalCntLByCnty =   {#[[1, 2]], #[[2]]} & /@ SQLExecute[conn, "
SELECT  COUNT(*), c.description
FROM name_loc f
INNER JOIN countries       c ON f.fk_cnty_id  = c.id
INNER JOIN identifiers     i ON f.fk_ident_id = i.id  
GROUP BY f.fk_cnty_id
"]

次のエラーが表示されます。

Part::partd: Part specification {2,ANDORRA}[[1,2]] is longer than depth of object. >>

次に、ヒストグラムをプロットする必要がありました。私はこれに1時間費やしたので、助けていただければ幸いです。

4

1 に答える 1

1

データは、それぞれ 2 つの要素を持つ多くのサブリストのリストの形式になっています。このような:

{{cnt1,description1},{cnt2,description2},...}

マッピング コンストラクトは、/@ result各サブリストを選択し、無名関数に渡します。したがって#、匿名関数には list があります{cnt,description}。cnt#[[1]]も同様で、#[[2]]description も同様です。しかし、リストの場合#[[1,2]]の2番目の要素になるものを取得しようとしています。ただし、リストではないため、その要素を取得することはできません。存在しません。あなたはどちらかを探していますが、それはあなたが持っているデータの種類ではないので決してありません。cntcnt#[[1]]#[[2]]#[[1,something]]

于 2013-05-31T15:57:26.413 に答える