Hi I am very much new to this. I have three columns YEAR, MONTH,DAY in INTEGER format.
I want to load the script and combine YEAR,MONTH,DAY as single column and fetch the maximum.
I tried like,
Load year,month,date from HIVE.`abc`.`abc1';
SELECT max(cast(year as String) || '_' || cast(month as string) || '_' || cast(day as string)) as result FROM HIVE.`abc`.`abc1';
By doing this I will get the result as 2020_5_21. But I should use the separator and find the max of the date.
The following error occurred: Connector reply error: SQL##f - SqlState: S1000, ErrorCode: 35, ErrorMsg: [Cloudera][Hardy] (35) Error from server: error code: '1' error message: 'Error while compiling statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask'.
I want to use the result in WHERE clause. But I don't know the statement.
SQL select * from HIVE.abc
.`abc1' where ---- ;
Please help.
If month and day are stored as integers, you need to use lpad() to add zero if it is single digit month or day. For example month
5
should become05
. Without this max may work incorrectly. Also use dash as a separator to have date in compatible format.And to use it in the WHERE use
WHERE date in (select max ...)
:Also you may need to quote names like year, month, day in backticks everywhere in sql: