Los premios Nobel se anuncian durante una semana en octubre y la ceremonia de entrega es hoy, 10 de diciembre ("en Australia ya es mañana"). Hay una interesante historia de cómo C. V. Raman (de Efecto Raman) reservado su billete a Estocolmo para la ceremonia de entrega de premios del 10 de diciembre incluso antes del anuncio, porque confiaba en ganar el premio.
Obtuve este conjunto de datos del repositorio "Awesome JSON Datasets" en https://github.com/jdorfman/awesome-json-datasets
El conjunto de datos del Premio Nobel tiene tres archivos de datos:
- Laureados - contiene el perfil de cada galardonado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
{ "nacido": "1888-11-07", "bornCity": "Tiruchirappalli", "País de nacimiento: "India", "bornCountryCode" (código de país de nacimiento): "IN", "murió": "1970-11-21", "muerteCity": "Bangalore", "PaisMuerto": "India", "códigoPaísMuerto": "IN", "nombre": "Sir Chandrasekhara Venkata", "género": "macho", "id": "37", "premios": [ { "afiliaciones": [ { "ciudad": "Calcuta", "país": "India", "nombre": "Universidad de Calcuta" } ], "categoría": "física", "motivación": "por sus trabajos sobre la dispersión de la luz y el descubrimiento del efecto que lleva su nombre"., "compartir": "1", "año": "1930" } ], "apellido": "Raman" } |
- País - Lista de países y código de país
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "código": "AR", "nombre": "Argentina" }, { "código": "AU", "nombre": "Australia" }, { "código": "AT", "nombre": "Austria" }, |
- Premio - la lista de cada premio por año y el ganador agrupado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
{ "categoría": "física", "laureados": [ { "nombre": "Sin-Itiro", "id": "84", "motivación": "por su trabajo fundamental en electrodinámica cuántica, con profundas consecuencias para la física de las partículas elementales"., "compartir": "3", "apellido": "Tomonaga" }, { "nombre": "Julian", "id": "85", "motivación": "por su trabajo fundamental en electrodinámica cuántica, con profundas consecuencias para la física de las partículas elementales"., "compartir": "3", "apellido": "Schwinger" }, { "nombre": "Richard P.", "id": "86", "motivación": "por su trabajo fundamental en electrodinámica cuántica, con profundas consecuencias para la física de las partículas elementales"., "compartir": "3", "apellido": "Feynman" } ], "año": "1965" } |
El documento del premio tiene un ID que enlaza con el documento individual del ganador en el documento del galardonado. Veamos los premios Nobel. En primer lugar, observe que la información sobre los premios es PLURAL y se almacena en una matriz. Una persona o una organización puede ganar más de un premio. Veamos quiénes han ganado más de un premio.
Tarea 1. ¿Cuántos han ganado más de un premio Nobel?
Consulta 1: Simplemente UNNEST la matriz de laureados para obtener el objeto individual de los ganadores del premio y luego simplemente determinar y filtrar por la longitud de la matriz. Hay una entrada por premio. Para más información sobre el manejo de matrices y las operaciones UNNEST, consulte el artículo: Trabajando con Arrays JSON en N1QL.
1 2 3 4 5 6 7 |
seleccione Lista.nombre || " " || SI FALTA(Lista.apellido, ""), longitud_array(Lista.premios) numnobel de laureado l sin anestesia l.laureados Lista donde longitud_array(Lista.premios) > 1; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
[ { "$1": "Marie Curie, de soltera Sklodowska", "numnobel": 2 }, { "$1": "John Bardeen", "numnobel": 2 }, { "$1": "Linus Carl Pauling", "numnobel": 2 }, { "$1": "Frederick Sanger", "numnobel": 2 }, { "$1": "Comité international de la Croix Rouge (Comité Internacional de la Cruz Roja) ", "numnobel": 3 }, { "$1": "Oficina del Alto Comisionado de las Naciones Unidas para los Refugiados (ACNUR) ", "numnobel": 2 } ] |
Tarea 2: Determinar qué país ha producido el mayor número de premios Nobel.
Consulta 2: simplemente anule los laureados y agrúpelos por el campo bornCountry.
1 2 3 4 5 6 7 8 9 |
seleccione Lista.bornCountry, Cuenta(1) totalPremios de laureado l sin anestesia l.laureados Lista grupo por Lista.bornCountry pedir por totalPremios desc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[ { "País de nacimiento: "USA", "totalPremios": 269 }, { "País de nacimiento: "Reino Unido", "totalPremios": 84 }, { "País de nacimiento: "Alemania", "totalPremios": 63 }, { "País de nacimiento: "Francia, "totalPremios": 52 }, { "totalPremios": 33 }, { "País de nacimiento: "Suecia", "totalPremios": 29 }, |
Ahora, hay 33 ganadores sin país ni origen... ¿Qué está pasando aquí?
1 2 3 4 5 6 7 |
seleccione Lista.nombre || " " || SI FALTA(Lista.apellido, ""), Lista.género de laureado l sin anestesia l.laureados Lista donde Lista.bornCountry es falta; |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "$1": " Institut de droit international (Instituto de Derecho Internacional) ", "género": "org" }, { "$1": "Bureau international permanent de la Paix (Oficina Internacional Permanente de la Paz) ", "género": "org" }, { "$1": "Comité international de la Croix Rouge (Comité Internacional de la Cruz Roja) ", "género": "org" }, ... |
Parece que se trata de organizaciones internacionales y luego un par de ganadores cuyos datos faltan bornCountry.
Tarea 3: Cuántos han venido de la India.
Pregunta 3: Los premios Nobel se conceden desde 1901, pero India obtuvo su independencia en 1947. Hasta 1947, el país de nacimiento tiene como etiqueta "British India". Hagamos una búsqueda ampliada.
1 2 3 4 5 6 7 8 9 10 11 12 |
seleccione Lista.nombre, Lista.apellido, Lista.bornCountry como xborncountry, Lista.fallecióPaís como ydiedcountry, Lista.género como zgender de laureado l sin anestesia l.laureados Lista donde Lista.bornCountry = "India" o inferior(Lista.bornCountry) como "%india%" o Lista.fallecióPaís = "India" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
[ { "nombre": "Sir Chandrasekhara Venkata", "apellido": "Raman", "xborncountry": "India", "ydiedcountry": "India", "zgender": "macho" }, { "nombre": "Abdus", "apellido": "Salam", "xborncountry": "India (ahora Pakistán)", "ydiedcountry": "Reino Unido", "zgender": "macho" }, { "nombre": "Subramanyan", "apellido": "Chandrasekhar", "xborncountry": "India (ahora Pakistán)", "ydiedcountry": "USA", "zgender": "macho" }, { "nombre": "Ronald", "apellido": "Ross", "xborncountry": "India", "ydiedcountry": "Reino Unido", "zgender": "macho" }, { "nombre": "Har Gobind", "apellido": "Khorana", "xborncountry": "India", "ydiedcountry": "USA", "zgender": "macho" }, { "nombre": "Madre Teresa", "xborncountry": "Imperio Otomano (actual República de Macedonia)", "ydiedcountry": "India", "zgender": "mujer" }, { "nombre": "Rudyard", "apellido": "Kipling", "xborncountry": "India británica (actual India)", "ydiedcountry": "Reino Unido", "zgender": "macho" }, { "nombre": "Rabindranath", "apellido": "Tagore", "xborncountry": "India", "ydiedcountry": "India", "zgender": "macho" }, { "nombre": "Amartya", "apellido": "Sen", "xborncountry": "India", "zgender": "macho" }, { "nombre": "Muhammad", "apellido": "Yunus", "xborncountry": "India Británica (actual Bangladesh)", "zgender": "macho" }, { "nombre": "Venkatraman", "apellido": "Ramakrishnan", "xborncountry": "India", "zgender": "macho" }, { "nombre": "Kailash", "apellido": "Satyarthi", "xborncountry": "India", "zgender": "macho" } ] |
Resultados sorprendentes Además de los conocidos Premios Nobel indios, un par de famosos ganadores británicos, entre ellos Rudyard Kipling, nacieron en la India. Sólo hay un ganador que no nació en la India pero murió allí: La Madre Teresa.
Descubramos las categorías.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
seleccione lp.categoría, CONTAR(1) recuento de premios de laureado l sin anestesia l.laureados Lista sin anestesia Lista.premios lp donde Lista.bornCountry = "India" o inferior(Lista.bornCountry) como "%india%" o Lista.fallecióPaís = "India" o inferior(Lista.fallecióPaís) como "%india%" grupo por lp.categoría pedir por recuento de premios DESC |
1 2 3 4 5 6 7 |
categoría recuento de premios paz 3 física 3 literatura 2 medicina 2 economía 1 química 1 |
Tarea 4: Crear un gráfico apilado de los 7 países que más premios Nobel han ganado con categofy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
seleccione Lista.bornCountry como xborncountry, lp.categoría ycategoría, CONTAR(1) zprizecount, SUM(CONTAR(1)) EN(partición por Lista.bornCountry) z1countrytot, SUM(CONTAR(1)) EN( partición por Lista.bornCountry pedir por lp.categoría ) z1ctrycatcount de laureado l sin anestesia l.laureados Lista sin anestesia Lista.premios lp grupo por Lista.bornCountry, lp.categoría pedir por z1countrytot desc, ycategoría |
Resultados (subconjunto para abreviar)
A partir de aquí, vamos a crear un gráfico de columnas apiladas de los 7 primeros países y mostrar los premios por categoría.
Todas estas manipulaciones de datos son para divertirse y aprender. Pero, el progreso y la paz que estos ganadores han logrado sin fronteras.
Puede descargar el conjunto de datos y Couchbase. A continuación, formula tus propias preguntas interesantes y respóndelas.