Obtención de datos con criterios específicos

En este notebook, recuperamos datos que cumplen criterios específicos mediante las cláusulas optimizando recursos mediante las cláusulas SELECT, FROM, WHERE, LIMIT y TOP. Se emplean operadores =, !=, <, > y operadores lógicos AND, OR, IN y funciones lIKE y de fechas.

In [ ]:
%load_ext sql
In [ ]:
%sql mysql://studentuser:studentpw@localhost/dognitiondb

Necesitamos los datos de los clientes que recibieron acceso gratuito a las primeras cuatro pruebas.Estos clientes tienen valor 1 en la columna "free_start_user" de la tabla de usuarios. User_guid es el campo que especifica el número de identificación de usuario único de cada cliente en la tabla de usuarios. Para control, mantengo la columna de free_start_user. Usamos el limit para ahorrar recurso y mejor visualización del resultado de la consulta:

In [ ]:
%%sql
SELECT user_guid, free_start_user
FROM users
WHERE free_start_user=1
LIMIT 4;

Necesitamos los datos de las mascotas que hayan sido testeados; es decir dna_tested=1:

In [ ]:
%%sql
SELECT dog_guid, dna_tested
FROM dogs
WHERE dna_tested=1;

Si desea examinar las identificaciones de los perros que fueron castrados o sometidos a pruebas de ADN, puede usar OR en la siguiente consulta:

In [ ]:
%%sql
SELECT dog_guid, dog_fixed, dna_tested
FROM dogs
WHERE dog_fixed= 1 OR dna_tested= 1
LIMIT 4;

Si desea examinar las identificaciones de los perros que se le realizo castracción pero NO testeados por ADN, puede consultar:

In [ ]:
%%sql
SELECT dog_guid, dog_fixed, dna_tested
FROM dogs
WHERE dog_fixed=1 AND dna_tested!=1
LIMIT 4;

Deseamos obtener los ID de los clientes que realizaron suscripciones anuales, indicados con un "2" en el campo membership_type de la tabla de usuarios:

In [ ]:
%%sql
SELECT user_guid, membership_type
FROM users
WHERE membership_type=2;

Necesitamos ver los datos de perros de la raza "Golden Retrievers" y "Poodle":

In [ ]:
%%sql
SELECT dog_guid, breed
FROM dogs
WHERE breed IN ("golden retriever","poodle")
LIMIT 5;

Queremos ver todos los datos de las razas cuyos nombres comienzan con "s":

In [ ]:
%%sql
SELECT dog_guid, breed
FROM dogs
WHERE breed LIKE ("s%");

Recuperamos todos los ID de usuario de los clientes que tienen perras cuya raza incluye la palabra "terrier" en alguna parte de su nombre:

In [ ]:
%%sql
SELECT user_guid, breed
FROM dogs
WHERE gender="female" AND breed LIKE ("%terrier%")
LIMIT 4;

Queremos extraer los ID de las mascotas y las marcas de tiempo de las pruebas completadas después del 15 de cada mes:

In [ ]:
%%sql
SELECT dog_guid, created_at
FROM complete_tests
WHERE DAY(created_at) > 15;

Supongamos que se desea saber cuántas pruebas completan los clientes en diferentes días de la semana, por ejemplo los martes:

In [ ]:
%%sql
SELECT dog_guid, created_at
FROM complete_tests
WHERE DAYNAME(created_at)="Tuesday";

También, extraemos las identificaciones de perros y marcas de tiempo de las pruebas completadas después del 4 de febrero de 2014:

In [ ]:
%%sql
SELECT dog_guid, created_at
FROM complete_tests
WHERE created_at > '2014-02-04';

Necesitamos los campos Dog ID, subcategory_name y test_name, en ese orden, de las primeras 10 revisiones ingresadas en la tabla de Reseñas del 2014.

In [ ]:
%%sql
SELECT dog_guid, subcategory_name, test_name
FROM reviews
WHERE YEAR(created_at)=2014
LIMIT 10;

Selecciamos la identificación del perro, el nombre de la prueba y la subcategoría asociada con cada prueba completada para las primeras 100 pruebas ingresadas en octubre de 2014:

In [ ]:
%%sql
SELECT dog_guid, test_name, subcategory_name
FROM complete_tests
WHERE YEAR(created_at)="2014" and MONTH(created_at)=10
LIMIT 100;

Necesitamos los ID de usuario que no tienen valores nulos en el campo Estado de su información demográfica:

In [ ]:
%%sql 
SELECT user_guid, state
FROM users
WHERE state IS NOT NULL;

Sabemos que muchas de las entradas en el campo free_start_user de la tabla de usuarios en el conjunto de datos de tiene valores NULL, necesitamos los ID de estos usuarios de la tabla users:

In [ ]:
%%sql
SELECT user_guid
FROM users
WHERE free_start_user IS NULL;