I am new to couchbase and I have been going through couchbase documents and other online resources for a while but I could’t get my query working. Below is the data structure and my query:
Table1:
{ “jobId” : “101”, “jobName” : “abcd”, “jobGroup” : “groupa”, “created” : " “2018-05-06T19:13:43.318Z”, “region” : “dev” },
{ “jobId” : “102”, “jobName” : “abcd2”, “jobGroup” : “groupa”, “created” : " “2018-05-06T22:13:43.318Z”, “region” : “dev” },
{ “jobId” : “103”, “jobName” : “abcd3”, “jobGroup” : “groupb”, “created” : " “2018-05-05T19:11:43.318Z”, “region” : “test” }
I need to get the jobId which has the latest job information (max on created timestamp) for a given jobGroup and region (group by jobGroup and region).
My sql query doesn’t help me using self-join on jobId.
Query:
/* Idea is to pull out the job which was executed latest for all possible groups and region and print the details of that particular job*/
select * from (select max(DATE_FORMAT_STR(j.created,‘1111-11-11T00:00:00+00:00’)) as latest, j.jobGroup, j.region from table1 j group by jobGroup, region) as viewtable join table t on keys meta(t).id where viewtable.latest in t.created and t.jobGroup = viewtable.jobGroup and viewtable.region = t.region
Error Result: No result displayed
Desired result :
{
“jobId” : “102”,
“jobName”:“abcd2”,
“jobGroup”:“groupa”,
“latest” :“2018-05-06T22:13:43.318Z”,
“region”:“dev”
},
{
“jobId” : “103”,
“jobName” : “abcd3”,
“jobGroup” : “groupb”,
“created” : " “2018-05-05T19:11:43.318Z”,
“region” : “test”
}