Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 仅查询最后n个分区_Sql_Hive_Partition - Fatal编程技术网

Sql 仅查询最后n个分区

Sql 仅查询最后n个分区,sql,hive,partition,Sql,Hive,Partition,我有一个按日期划分的表(table1)。它可能看起来像这样: ╔════════════╦═══════╦══════╗ ║ date ║ col1 ║ col2 ║ ╠════════════╬═══════╬══════╣ ║ 2020-06-16 ║ Jeff ║ 3 ║ ║ 2020-06-16 ║ Bob ║ 148 ║ ║ 2020-06-16 ║ Karen ║ 101 ║ ║ 2020-06-15 ║ Joy ║ 9 ║ ║ 2020-06

我有一个按日期划分的表(
table1
)。它可能看起来像这样:

╔════════════╦═══════╦══════╗
║    date    ║ col1  ║ col2 ║
╠════════════╬═══════╬══════╣
║ 2020-06-16 ║ Jeff  ║ 3    ║
║ 2020-06-16 ║ Bob   ║ 148  ║
║ 2020-06-16 ║ Karen ║ 101  ║
║ 2020-06-15 ║ Joy   ║ 9    ║
║ 2020-06-15 ║ Joe   ║ 33   ║
║ 2020-06-12 ║ Kevin ║ 48   ║
║ 2020-06-12 ║ Raj   ║ 100  ║
║ 2020-06-12 ║ Karen ║ 9    ║
║ ...        ║ ...   ║ ...  ║
╚════════════╩═══════╩══════╝

我想运行查询
SELECT count(*)FROM table1 group by col1 have count(*)>1
,但假设我只想在最后两个分区(日期
2020-06-16
2020-06-15
)上运行该查询。在蜂箱中有没有一种简单的方法可以做到这一点?换句话说,我只想在给定时间检查前n个分区。

我不确定这是否解决了您的问题,但您可以参考当前日期:

where date >= date_sub(current_date, -2)

我不确定这是否解决了您的问题,但您可以参考当前日期:

where date >= date_sub(current_date, -2)

尝试使用子查询获取具有
订单日期
限制2
的两个最新日期:

SELECT count(*) 
FROM table1 
WHERE date IN (SELECT DISTINCT date FROM table1 ORDER BY date DESC LIMIT 2)
GROUP BY col1 
HAVING count(*) > 1

尝试使用子查询获取具有
订单日期
限制2
的两个最新日期:

SELECT count(*) 
FROM table1 
WHERE date IN (SELECT DISTINCT date FROM table1 ORDER BY date DESC LIMIT 2)
GROUP BY col1 
HAVING count(*) > 1