7
A
回答
12
我不知道內置函數或UDF會模仿此行爲,但如果您使用的是HIVE 0.13
,則可以使用函數row_number()
以獲得所需的結果。
select pk, col_1, col_2, ... , col_n
from (
select pk, col_1, col_2, ... , col_n, row_number() OVER (ORDER by pk) as rank
from some_database.some_table
) x
where rank between 31 and 50
0
public class CountRatingQueryBuilder {
private static final String SCORING_TABLE_NAME = "web_resource_rating";
private final Connection connection;
private final ScoringMetadata scoringMetadata;
private final SelectSelectStep select;
private final Factory create;
public CountRatingQueryBuilder(Connection connection, ScoringMetadata scoringMetadata){
this.connection = connection;
this.scoringMetadata = scoringMetadata;
create = new Factory(this.connection, SQLDialect.MYSQL);
select = create.select();
withSelectFieldsClause();
}
public CountRatingQueryBuilder withLimit(int limit){
select.limit(limit);
return this;
}
public CountRatingQueryBuilder withRegionId(Integer regionId){
select.where(REGION_ID.field().equal(regionId));
return this;
}
public CountRatingQueryBuilder withResourceTypeId(int resourceTypeId){
select.where(RESOURCE_TYPE_ID.field().equal(resourceTypeId));
return this;
}
public CountRatingQueryBuilder withRequestTimeBetween(long beginTimestamp, long endTimestamp){
select.where(REQUEST_TIME.field().between(beginTimestamp, endTimestamp));
return this;
}
public CountRatingQueryBuilder withResourceId(int resourceId){
select.where(RESOURCE_ID.field().equal(resourceId));
return this;
}
protected void withGroupByClause(){
select.groupBy(REGION_ID.field());
select.groupBy(RESOURCE_TYPE_ID.field());
select.groupBy(RESOURCE_ID.field());
select.groupBy(CONTENT_ID.field());
}
protected void withSelectFieldsClause(){
select.select(REGION_ID.field());
select.select(RESOURCE_TYPE_ID.field());
select.select(CONTENT_ID.field());
select.select(RESOURCE_ID.field());
select.select(Factory.count(HIT_COUNT.field()).as(SUM_HIT_COUNT.fieldName()));
}
protected void withFromClause(){
select.from(SCORING_TABLE_NAME);
}
protected void withOrderByClause(){
select.orderBy(SUM_HIT_COUNT.field().desc());
}
public String build(){
withGroupByClause();
withOrderByClause();
withFromClause();
return select.getSQL().replace("offset ?","");//dirty hack for MySQL dialect. TODO: we can try to implement our own SQL dialect for Hive :)
}
public List<ResultRow> buildAndFetch(){
String sqlWithPlaceholders = build();
List<ResultRow> scoringResults = new ArrayList<ResultRow>(100);
List<Record> recordResults = create.fetch(sqlWithPlaceholders, ArrayUtils.subarray(select.getBindValues().toArray(new Object[select.getBindValues().size()]),0, select.getBindValues().size()-1));//select.fetch();
for(Record record : recordResults){
ResultRowBuilder resultRowBuilder = ResultRowBuilder.create();
resultRowBuilder.withContentType(scoringMetadata.getResourceType(record.getValue(RESOURCE_TYPE_ID.fieldName(), Integer.class)));
resultRowBuilder.withHitCount(record.getValue(SUM_HIT_COUNT.fieldName(), Long.class));
resultRowBuilder.withUrl(record.getValue(CONTENT_ID.fieldName(), String.class));
scoringResults.add(resultRowBuilder.build());
}
return scoringResults;
}
}
希望這是從下面的鏈接複製正確答案: 請參考jooq extend existing dialect. Adopt MySQL dialect to apache Hive dialect明白這一點的細節。
相關問題
- 1. 功能區偏移20px
- 2. 偏移Azure中EventHubTrigger功能應用
- 3. 偏移功能只能水平工作
- 4. 用於多列的Excel偏移功能
- 5. 具有偏移功能的Excel Countifs
- 6. 滾動偏移功能不起作用
- 7. KafkaProducer sendOffsetsToTransaction需要偏移+ 1才能成功提交當前偏移量
- 8. Excel VBA中選擇性列的偏移功能
- 9. Hive變量替換功能
- 10. 更改時區使用COVERT_TZ功能,PHP的YEARWEEK偏移,MySQL的
- 11. 問題與jQuery的功能scrollTo(ID)偏移
- 12. 迴文功能總是報告偏移#1的錯誤
- 13. Excel - 具有動態參考參數的偏移功能
- 14. 費克斯偏移jQuery的拖放功能
- 15. 未定義的偏移量:0編輯功能
- 16. 功能上的平滑滾動+偏移goToNext
- 17. Hive setup() - 類似於Mapper setup()的功能?
- 18. C#ListView:ListViewItem偏移可能嗎?
- 19. Hive字段分隔符作爲固定偏移量
- 20. Bootstrap無響應 - 偏移保持響應功能
- 21. 更新公式對象與偏移功能
- 22. 停止javascript日期功能從更改時區偏移
- 23. 移調偏移
- 24. HIVE - 按日期分組功能
- 25. Excel VBA中如何使用名稱的功能來定義偏移式
- 26. Jquery偏移功能使頂部風格成爲Firefox中的負數
- 27. 如何在Excel中使用具有偏移功能的命名範圍
- 28. 偏移的div
- 29. MySql的偏移查詢不能
- 30. NSUserDefaults的 - 節能滾動視圖偏移
這與「MySQL」中的「limit 20,30」功能相同。 – nervosol
http://stackoverflow.com/questions/11750312/hive-ql-limiting-number-of-rows-per-each-item –