Yingyi Bu | 391f09e | 2015-10-29 13:49:39 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one |
| 3 | * or more contributor license agreements. See the NOTICE file |
| 4 | * distributed with this work for additional information |
| 5 | * regarding copyright ownership. The ASF licenses this file |
| 6 | * to you under the Apache License, Version 2.0 (the |
| 7 | * "License"); you may not use this file except in compliance |
| 8 | * with the License. You may obtain a copy of the License at |
| 9 | * |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | * |
| 12 | * Unless required by applicable law or agreed to in writing, |
| 13 | * software distributed under the License is distributed on an |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 15 | * KIND, either express or implied. See the License for the |
| 16 | * specific language governing permissions and limitations |
| 17 | * under the License. |
| 18 | */ |
| 19 | |
| 20 | drop database events if exists; |
| 21 | create database events; |
| 22 | |
| 23 | use events; |
| 24 | |
| 25 | |
| 26 | create type events.AddressType as |
| 27 | closed { |
| 28 | street : string, |
| 29 | city : string, |
| 30 | zip : string |
| 31 | } |
| 32 | |
| 33 | create type events.EventType as |
| 34 | closed { |
| 35 | name : string, |
| 36 | location : AddressType?, |
| 37 | organizers : {{{ |
| 38 | name : string, |
| 39 | role : string |
| 40 | } |
| 41 | }}, |
| 42 | sponsoring_sigs : [{ |
| 43 | sig_name : string, |
| 44 | chapter_name : string |
| 45 | } |
| 46 | ], |
| 47 | interest_keywords : {{string}}, |
| 48 | price : double?, |
| 49 | start_time : datetime, |
| 50 | end_time : datetime |
| 51 | } |
| 52 | |
| 53 | create nodegroup group1 if not exists on |
| 54 | nc1, |
| 55 | nc2 |
| 56 | ; |
| 57 | create table Event(EventType) primary key name on group1; |
| 58 | |
| 59 | write output to nc1:"/tmp/q2.adm" |
| 60 | select element {'sig_name':sig_name,'total_count':sig_sponsorship_count,'chapter_breakdown':by_chapter} |
| 61 | from Event as event, |
| 62 | event.sponsoring_sigs as sponsor |
| 63 | with es as {'event':event,'sponsor':sponsor} |
| 64 | group by sponsor.sig_name as sig_name |
| 65 | with sig_sponsorship_count as events.count(es), |
| 66 | by_chapter as ( |
| 67 | select element {'chapter_name':chapter_name,'escount':events.count(e)} |
| 68 | from es as e |
| 69 | group by e.sponsor.chapter_name as chapter_name |
| 70 | ) |
| 71 | order by sig_sponsorship_count desc |
| 72 | limit 5 |
| 73 | ; |