【问题标题】:Rails and Blazer 2 Line GraphRails 和 Blazer 2 折线图
【发布时间】:2021-05-31 04:53:31
【问题描述】:

如果有人熟悉 Blazer / sql,我真的可以使用你的帮助:

我正在尝试在 Blazer 中创建折线图 => https://blazer.dokkuapp.com/queries/5-line-chart-format-2

graph sample

我想绘制 [qikpac_id] 和 [reading_values.value]

但需要过滤阅读类型什么是“soc”@

WHERE reading_types.value = 'soc'

所以我最终得到了 4 列,我只想要

Y 轴作为读数值.value

X 为阅读时间

Qikpacs 作为绘图值

到目前为止的sql查询:

SELECT
-- ## comented ## date_trunc('minute', reading_time)::date AS minute, 
reading_time,
reading_types.value as Reading_Type,
reading_values.value as Reading_Value,
qikpac_id as Qikpac 
FROM reading_values
INNER JOIN reading_types
ON reading_values.reading_type_id = reading_types.id
JOIN battery_statuses
ON reading_values.battery_status_id = battery_statuses.id
JOIN battery_readings
ON reading_values.battery_reading_id = battery_readings.id
WHERE reading_types.value = 'soc'
ORDER BY 1 

这让我:

| reading_time | reading_type | reading_value |  qikpac_id | 
2021-05-30 09:10:33 +1000   soc     49  13
2021-05-30 09:16:33 +1000   soc     49  14
2021-05-30 09:24:33 +1000   soc     49  15
2021-05-30 09:35:33 +1000   soc     49  16
2021-05-30 09:48:33 +1000   soc     49  13
2021-05-30 09:55:33 +1000   soc     49  14
2021-05-30 10:06:33 +1000   soc     49  15
2021-05-30 10:19:33 +1000   soc     49  16 

谢谢, 我很困惑.. :)

【问题讨论】:

    标签: sql ruby-on-rails postgresql rubygems ruby-on-rails-6


    【解决方案1】:

    对于任何在下面搜索 Blazer 的人来说都是答案:

    您需要通过以下方式订购: 3 列 - 时间戳、字符串、数字

    而且 Blazer 对顺序和类型非常严格,否则你将无法像我一样快速获得任何结果。

    --      3 columns - timestamp, string, numeric
    SELECT
    date_trunc('minute', battery_readings.reading_time)::timestamp AS minute,
    qikpacs.serial_number as Qikpac,
    reading_values.value as Reading_Value
    
    FROM reading_values
    INNER JOIN reading_types
    ON reading_values.reading_type_id = reading_types.id
    JOIN battery_statuses
    ON reading_values.battery_status_id = battery_statuses.id
    JOIN battery_readings
    ON reading_values.battery_reading_id = battery_readings.id
    JOIN qikpacs
    ON battery_readings.qikpac_id = qikpacs.id
    WHERE reading_types.value = 'soc'
    AND ( qikpacs.serial_number = 'QP016' )
    GROUP BY battery_readings.reading_time,  qikpacs.serial_number, reading_values.value
    ORDER BY battery_readings.reading_time,  qikpacs.serial_number, reading_values.value
    

    image of graph

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 1970-01-01
      • 2012-10-16
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      相关资源
      最近更新 更多