私は、列として少数の行を表示するためにSQLクエリをcassandraに書き込むことになっています。テーブルは、tag_type_id
の値が1,2,3、... 42の範囲で、このようになります。エラー:ピボットを使用して、行をcassandraの列に変換します。
+--------+-----------+-------------------+-------+
|asset_id|tag_type_id| datetime| value|
+--------+-----------+-------------------+-------+
| 1| 1|2017-07-28 11:25:...|1202.65|
| 1| 1|2017-07-28 11:24:...|1212.17|
| 1| 1|2017-07-28 11:23:...|1214.51|
| 1| 1|2017-07-28 11:21:...|1210.79|
| 1| 1|2017-07-28 11:20:...|1207.01|
| 1| 1|2017-07-28 11:19:...|1208.17|
| 1| 1|2017-07-28 11:18:...| 1205.7|
| 1| 1|2017-07-28 11:16:...|1206.11|
| 1| 1|2017-07-28 11:13:...|1208.53|
| 1| 1|2017-07-28 11:11:...|1207.82|
| 1| 1|2017-07-28 11:10:...|1205.05|
| 1| 1|2017-07-28 11:09:...|1205.56|
| 1| 1|2017-07-28 11:08:...|1204.55|
| 1| 1|2017-07-28 11:06:...| 92.17|
| 1| 1|2017-07-28 11:05:...|1213.93|
| 1| 1|2017-07-28 11:00:...|1205.13|
| 1| 1|2017-07-28 10:59:...|1204.42|
| 1| 1|2017-07-28 10:54:...|1209.42|
| 1| 1|2017-07-28 10:52:...| 1209.6|
| 1| 1|2017-07-28 10:50:...|1213.63|
+--------+----------+--------------------+-------+
Iは、列としてではなく、同じテーブル内の行として見値39及び40のtag_type_id
を参照する必要があります。私はこの
asset_id tag_type_id datetime value tag_type_id datetime value
1 39 2017-07-28 11:25 90 40 2017-07-28 11:25 0.3
1 39 2017-07-28 11:24 91 40 2017-07-28 11:24 0.9
1 39 2017-07-28 11:23 90 40 2017-07-28 11:23 0.024
1 39 2017-07-28 11:22 89 40 2017-07-28 11:22 0.9
1 39 2017-07-28 11:21 91 40 2017-07-28 11:21 0.25
のようにそれをしたい私はhereのようなピボットを使用してそれを実行しようとしました。しかし、それはエラーがスローされます。
select *
from
(
select tag_type_id, datetime, value
from energydata.demodata where asset_id = 1
) src
pivot
(
sum(value)
for tag_type_id in ([39],[40])
) piv;
com.datastax.driver.core.exceptions.SyntaxError: line 3:0 no viable alternative at input '(' (select *from[(]...)
com.datastax.driver.core.exceptions.SyntaxError: line 3:0 no viable alternative at input '(' (select *from[(]...)
私は上記のようなテーブルを表示するために何をすべきでしょうか?
ありがとうございます。
は自己結合に従って日時 –
を試してみてください、あなたは、SQLサーバーやカサンドラを使用していますか? –
私はcassandraを使用しています。私はこれらのクエリをSQLコンソールのcassandraに書いています –