2013-05-25 2 views
0

У меня есть таблица, в которой хранятся события в виде столбцов DATETIME (например, 01-01-1970) и TIMESTAMP.Использование таблицы слияния для подачи линейной диаграммы

Когда я хочу, чтобы сделать запрос, чтобы увидеть количество событий в день, я сделать что-то вроде этого:

SELECT date, COUNT() FROM tableId GROUP BY date ORDER BY date ASC 

который возвращает данные, как это:

date  count()  
1  1 
2  1 
3  1 
4  3 
5  1 
6  1 
7  1 
8  4 
9  4 
10  3 

Сейчас я бы хотели бы использовать эти данные, чтобы нарисовать линию диаграмму:

google.visualization.drawChart({ 
    "containerId": "report", 
    "dataSourceUrl": "http://www.google.com/fusiontables/gvizdata?tq=", 
    "query":"SELECT date, COUNT() FROM tableId GROUP BY date ORDER BY date ASC", 
//  "chartType": "Table", 
    "chartType": "LineChart", 
    "options": { 
     "enableInteractivity": false, 
     "showRowNumber" : true, 
     "vAxis": { "title": "Events" }, 
     "hAxis": { "title": "Days" } 
    } 
}); 

Но по какой-то причине это не похоже на работу, так как диаграмма но данные не выводятся.

Подсказка?

ответ

0

Я предполагаю, что это потому, что вы на самом деле ничего не спасаете, как DataTable object. Вы можете посмотреть на query language reference, чтобы получить представление о том, как запросы работают как источники для объектов визуализации Google.

Если посмотреть на this example о том, как обрабатывать запрос, то вы увидите, что вам нужно, чтобы сохранить ответ запросов и кормить, что на диаграмме в качестве DataTable объекта:

function drawVisualization() { 
    // To see the data that this visualization uses, browse to 
    // http://spreadsheets.google.com/ccc?key=pCQbetd-CptGXxxQIG7VFIQ 
    var query = new google.visualization.Query(
     'http://spreadsheets.google.com/tq?key=pCQbetd-CptGXxxQIG7VFIQ&range=B1:D11&pub=1'); 

    // Send the query with a callback function. 
    query.send(handleQueryResponse); 
} 

function handleQueryResponse(response) { 
    if (response.isError()) { 
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); 
    return; 
    } 

    var data = response.getDataTable(); 
    visualization = new google.visualization.IntensityMap(document.getElementById('visualization')); 
    visualization.draw(data, null); 
} 

Поэтому убедитесь, что у вас есть промежуточный шаг, на котором вы сохраняете результат своего запроса в качестве объекта DataTable с использованием queryResponse.getDataTable(), и это может решить вашу проблему.

+0

Спасибо за ваш ответ, хотя я не уверен, что это проблема. Например, если вы используете «Table» chartType, диаграмма рисуется правильно. Кроме того, если я сменил SQL-запрос на то, что бы выбрать timestamp (это еще один столбец в моей таблице слияния), тогда диаграмма рисуется, хотя и показывает монотонно увеличивающуюся строку (как и ожидалось, поскольку временные метки должны увеличиваться по мере увеличения дат) Я имею в виду, что если эти случаи будут работать, это не значит, что проблема может быть где-то в другом месте, а не в отношении DataTable? – Dan

+0

Это было бы так - так как у нас нет доступа к вашей таблице слияния, это немного сложно проверить. Я ошибался в том, что проблема была - извинения! – jmac