我是 Postgres 的新手,現在第一次使用 nodejs。我有一張帶有傳感器讀數的表格(在這種情況下為溫度)。該表類似于:
| 傳感器ID | 時間戳 | 溫度 |
|---|---|---|
| 1 | 晚上 8 點 22 分 | 22C |
| 2 | 晚上 8 點 23 分 | 21C |
| 3 | 晚上 8 點 25 分 | 24℃ |
| 2 | 晚上 8 點 26 分 | 27℃ |
| 2 | 晚上 8 點 28 分 | 19C |
| 1 | 晚上 8 點 31 分 | 28℃ |
有沒有一種方法可以創建一個查詢來獲取 nodejs 的資料,格式如下:
[
{sensorID: 1,
data: [
{timestamp:8:22pm, temperature:22C},
{timestamp:8:31pm, temperature:28C}
]},
{sensorID: 2,
data: [
{timestamp:8:23pm, temperature:21C},
{timestamp:8:26pm, temperature:27C},
{timestamp:8:28pm, temperature:19C}
]},
{sensorID: 3,
data: [
{timestamp:8:25pm, temperature:24C}
]}
]
uj5u.com熱心網友回復:
歡迎來到 SO。
要在 PostgreSQL 中構建和聚合 json 物件(通過 SQL),您可以使用函式jsonb_build_object和jsonb_agg:
WITH j AS (
SELECT
sensorid,
jsonb_build_object(
'data',
jsonb_agg(
jsonb_build_object(
'timestamp',timestamp,
'temperature',temperature)))
FROM t
GROUP BY sensorid
ORDER BY sensorid)
SELECT jsonb_agg(j) FROM j;
演示:db<>fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/491272.html
標籤:sql 节点.js PostgreSQL 表示
上一篇:我可以通過在express中的router.use()中傳遞它來使用api速率限制器嗎?
下一篇:Query和存盤程序的結果不同
