hbase - Apache phoenix 的 order by 和 offset 问题在分页中给出重复的结果
问题描述
我在 apache phoenix 中使用带有偏移量的 order by 进行分页。我在下一页上得到重复的结果。
我在 Apache phoenix 中查看了 HBase 表。我正在使用 TO_NUMBER() 将我的字符串化列转换为整数。我想按降序对这个转换后的列进行排序。
示例:我有一个 Hbase 视图,例如:
------------------------------
| TITLE | COUNT |
------------------------------
| t8 | 10 |
------------------------------
| t9 | 2 |
| t4 | 1 |
| t6 | 1 |
| t10 | 1 |
| t7 | 1 |
| t43 | 0 |
| t14 | 0 |
| t11 | 0 |
| t42 | 0 |
我的查询:
Select TITLE,COUNT from Hbase_view order by TO_NUMBER(COUNT) desc limit 5 offset 0;
结果 :
+------------+------------------+
| TITLE | COUNT |
+------------+------------------+
| t8 | 10 |
| t9 | 2 |
| t4 | 1 |
| t7 | 1 |
| t10 | 1 |
下一个查询:
选择 TITLE,COUNT from Hbase_view order by TO_NUMBER(COUNT) desc limit 5 offset 5;
结果 :
+------------+------------------+
| TITLE | COUNT |
+------------+------------------+
| t7 | 1 |
| t43 | 0 |
| t14 | 0 |
| t11 | 0 |
| t42 | 0 |
+------------+------------------+
这里 t7 在两个结果上重复。
预期结果 :
1st Query:-
+------------+------------------+
| TITLE |COUNT |
+------------+------------------+
| t8 | 10 |
| t9 | 2 |
| t4 | 1 |
| t6 | 1 |
| t10 | 1 |
2nd Query
+------------+------------------+
| TITLE |COUNT |
+------------+------------------+
| t7 | 1 |
| t43 | 0 |
| t14 | 0 |
| t11 | 0 |
| t42 | 0 |
+------------+------------------+
请帮助我知道确切的问题是什么?另外,我想知道,CURSOR 可以用于相同的目的吗?
解决方案
好吧,我认为因为所有这些记录的数量相同:
| t4 | 1 |
| t6 | 1 |
| t10 | 1 |
| t7 | 1 |
使用您的查询,您无法保证这 4 条记录的顺序,因此您的分页查询不会按预期工作。
您也可以尝试在“ORDER BY”中添加标题作为二阶列。你应该有更一致的结果。
推荐阅读
- java - 带有 where 子句的我的选择查询不起作用
- java - HSQLDB - 如何在检查约束中使用自定义函数
- regex - How to get string from in between 2 strings
- r - `mutate` 应用于数据帧时的奇怪行为
- python - 我的循环缩进看起来很奇怪,这正常吗?(蟒蛇2)
- django - How to list my categories and forums related to it? Django
- java - Find the sum of product of distinct pairs in lowest Big O
- python - 如何在 Pandas 的窗口中获取最大行数?
- javascript - 在 Reactjs 中初始化 firebase 数据库时出错
- javascript - jQuery确认对话框没有关闭