This is my below requirement. I need- *Find `TOP 10` data for each `BUYER_ID, *So I cannot use LIMIT 10 here in this case.
This is the below table CREATE TABLE IF NOT EXISTS TestingTable1 ( BUYER_ID BIGINT, ITEM_ID BIGINT, CREATED_TIME STRING ) And this is the below data in the above table- BUYER_ID | ITEM_ID | CREATED_TIME ------------+------------------+----------------------- 1015826235 220003038067 2012-07-09 19:40:21, 1015826235 300003861266 2012-07-09 18:19:59, 1015826235 140002997245 2012-07-09 09:23:17, 1015826235 210002448035 2012-07-09 22:21:11, 1015826235 260003553381 2012-07-09 07:09:56, 1015826235 260003553382 2012-07-09 19:40:39, 1015826235 260003553383 2012-07-09 06:58:47, 1015826235 260003553384 2012-07-09 07:28:47, 1015826235 260003553385 2012-07-09 08:48:47, 1015826235 260003553386 2012-07-09 06:38:47, 1015826235 260003553387 2012-07-09 05:38:47, 1015826235 260003553388 2012-07-09 04:55:47, 1015826235 260003553389 2012-07-09 06:54:37, 34512201 597245693 2012-07-09 16:20:21, 34512201 8071787728 2012-07-09 15:19:59, 34512201 5868222883 2012-07-09 08:23:17, 34512201 2412180494 2012-07-09 22:21:11, 34512201 2422054205 2012-07-09 06:09:56, 34512201 1875744030 2012-07-09 19:40:39, 34512201 5639158173 2012-07-09 06:58:47, 34512201 5656232360 2012-07-09 07:28:47, 34512201 959188449 2012-07-09 08:48:47, 34512201 4645350592 2012-07-09 06:38:47, 34512201 5657320532 2012-07-09 05:38:47, 34512201 290419656539 2012-07-09 04:55:47, If you see the above data in the table, there are only two UNIQUE `BUYER_ID` and corresponding to those I have `ITEM_ID` AND `CREATED_TIME`. I need only 10 latest record basis on the time for that given day for each `BUYER_ID`. So for this `BUYER_ID` - `34512201` I need 10 latest record basis on `CREATED_TIME` for that given day only, it means for today's date I need 10 latest record for each `BUYER_ID`. And each `BUYER_ID` can have any day's data. But I am specifically interested for day before today's data(means yesterday's date always) by checking at the `CREATED_TIME` **Find `TOP 10` data for each `BUYER_ID`. Below is the sample output.** Sample Output. BUYER_ID | ITEM_ID | CREATED_TIME ------------+------------------+----------------------- 34512201 2412180494 2012-07-09 22:21:11 34512201 1875744030 2012-07-09 19:40:39 34512201 597245693 2012-07-09 16:20:21 34512201 8071787728 2012-07-09 15:19:59 34512201 959188449 2012-07-09 08:48:47 34512201 5868222883 2012-07-09 08:23:17 34512201 5656232360 2012-07-09 07:28:47 34512201 5639158173 2012-07-09 06:58:47 34512201 4645350592 2012-07-09 06:38:47 34512201 2422054205 2012-07-09 06:09:56 1015826235 210002448035 2012-07-09 22:21:11 1015826235 260003553382 2012-07-09 19:40:39 1015826235 220003038067 2012-07-09 19:40:21 1015826235 300003861266 2012-07-09 18:19:59 1015826235 140002997245 2012-07-09 09:23:17 1015826235 260003553385 2012-07-09 08:48:47 1015826235 260003553384 2012-07-09 07:28:47 1015826235 260003553381 2012-07-09 07:09:56 1015826235 260003553383 2012-07-09 06:58:47 1015826235 260003553389 2012-07-09 06:54:37 *Raihan Jamal* On Mon, Jul 9, 2012 at 7:56 PM, Andes <ylyy-1...@163.com> wrote: > ** > hello, you can use "desc" and "limit 10" to filter the top 10. > > 2012-07-10 > ------------------------------ > ** > Best Regards > Andes > > ** > ------------------------------ > *发件人:*Raihan Jamal > *发送时间:*2012-07-10 10:31 > *主题:*Find TOP 10 using HiveQL > *收件人:*"user"<user@hive.apache.org> > *抄送:* > > When I run this query, > > SELECT TOP 10 FROM TestingTable1 WHERE ORDER BY buyer_id, created_time > DESC; > > > I always get error as- > > *FAILED: Parse Error: line 1:7 cannot recognize input 'TOP' in select > expression* > > Is there any way around to use TOP 10 or something similar that will work > in HiveQL? > > > > *Raihan Jamal* > >