从MYSQL向Google Column Chart中的数据输入2列以上。

时间:2014-01-17 15:37:30

标签: mysql sql google-visualization

想知道我是否有来自查询的下表

SELECT kodnegeri.KodNegeriText AS Negeri, kategorisukan.KategoriSukantext AS Kategori,
COUNT(*) AS Total
FROM association 
INNER JOIN kodnegeri ON association.KodNegeri = kodnegeri.KodNegeri 
INNER JOIN kategorisukan ON association.KodKategoriSukan = kategorisukan.KategoriSukan
GROUP BY kodnegeri.KodNegeriText, kategorisukan.KategoriSukantext

enter image description here

如何将查询直接提供给Google柱形图,如下例所示: enter image description here

据我所知,柱形图数据格式要求第一列为字符串类型和剩余的类型编号。我还做了一些只包含两列的图表,所以没有问题。

array('label' => 'Tahun', 'type' => 'string'),
array('label' => 'Jumlah Persatuan', 'type' => 'number')

任何人都可以帮助如何生成这样的图形,如每年显示的示例(在我的情况下是Negeri),还有一些其他数据(即:国家,而在我的情况下是Kategori)

1 个答案:

答案 0 :(得分:1)

您需要透视数据,以便每个“Kategori”都是自己的数据列。 MySQL本身不支持pivot,但你可以像这样伪造它们:

SELECT
    kodnegeri.KodNegeriText AS Negeri,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Kecergasan', 1, 0)) AS Sukan_Kecergasan,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Paralimpik', 1, 0)) AS Sukan_Paralimpik,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Prestasi Tinggi', 1, 0)) AS Sukan_Prestasi_Tinggi,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Recreasi', 1, 0)) AS Sukan_Recreasi,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Seni Mempertahankan Diri', 1, 0)) AS Sukan_Seni_Mempertahankan_Diri,
    SUM(IF(kategorisukan.KategoriSukantext = 'Sukan Tradisional', 1, 0)) AS Sukan_Tradisional
    etc...
FROM association 
INNER JOIN kodnegeri ON association.KodNegeri = kodnegeri.KodNegeri 
INNER JOIN kategorisukan ON association.KodKategoriSukan = kategorisukan.KategoriSukan
GROUP BY kodnegeri.KodNegeriText

您需要为kategorisukan.KategoriSukantext的每个可能值添加一列(并检查代码以确保我没有拼错)。