I am using Version: 4.5.0-2601 Enterprise Edition (build-2601) ,
and my sample JSON data as following:
{"id":"p1","type":"parent","name":"parent1","local":"cn"};
{"id":"p2","type":"parent","name":"parent2","local":"cn"};
{"id":"p3","type":"parent","name":"parent3","local":"cn"};
{"id":"c1","type":"child","name":"child1","local":"cn","parent_id":"p1",tag":"tag1"};
{"id":"c2","type":"child","name":"child2","local":"cn","parent_id":"p1",tag":"tag1"};
{"id":"c3","type":"child","name":"child3","local":"cn","parent_id":"p1",tag":"tag2"};
{"id":"c4","type":"child","name":"child4","local":"cn","parent_id":"p2",tag":"tag1"};
{"id":"c5","type":"child","name":"child5","local":"cn","parent_id":"p2",tag":"tag2"};
I want to get the following data by local == "cn"
:
[
{"id":"p1","type":"parent","name":"parent1","local":"cn","count_tag1":2,"count_tag2":1},
{"id":"p2","type":"parent","name":"parent2","local":"cn","count_tag1":1,"count_tag2":1},
{"id":"p2","type":"parent","name":"parent3","local":"cn","count_tag1":0,"count_tag2":0}
]
which
count_tag1 match type == "child" AND local == "cn" and tag == "tag1"
count_tag2 match type == "child" AND local == "cn" and tag == "tag2"
I can get the result by group by 3 times ,but it toke long time,is there a better way to get the data?
PS: I try to using CASE WHEN but failed in group by clause.