Cassandra:在列中使用非null值获取最后一个

时间:2017-11-28 18:46:01

标签: cassandra cql cql3

我有一个Cassandra表,其中每列可以包含一个值或NULL。但如果它包含NULL,我知道该列中的所有下一个值也是NULL。

这样的事情:

+------------+---------+---------+---------+
|       date | column1 | column2 | column3 |
+------------+---------+---------+---------+
| 2017-01-01 |       1 |     'a' |    NULL |
| 2017-01-02 |       2 |     'b' |    NULL |
| 2017-01-03 |       3 |    NULL |    NULL |
| 2017-01-04 |       4 |    NULL |    NULL |
| 2017-01-05 |    NULL |    NULL |    NULL |
+------------+---------+---------+---------+

我需要一个查询,对于给定的列,返回具有非null值的最后一列的日期。在这种情况下:

  • 对于column1,'2017-01-04'
  • 对于第2列,'2017-01-02'
  • 对于column3,没有返回任何结果。

在SQL中它将是这样的:

SELECT date
FROM my_table
WHERE column1 IS NOT NULL
ORDER BY date DESC LIMIT 1

是否可以以任何方式,或者我是否应该将表分成每个列的一个表以避免出现NULL情况?

0 个答案:

没有答案