Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Querys Relacional y No Relacional
Querys Relacional y No Relacional
→ Propósito: Cantidad de chats abiertos por plan. Esta información será útil para un análisis de
los planes presentes en el negocio y que deberían ofrecer o retirar con respecto a la cantidad
de chats abiertos que puede tener una persona según su plan.
join
join
join planesUniversitarios_universitarios o
on planesUnivesitarios.id = o.planes_univesitarios_id) a
on universitarios_id = universitarios.id) e
on e.universitarios_id = salas_universitarios.universitarios_id
→ Propósito: Conocer la cantidad de mensajes que se envían en una hora. Para conocer la
tendencia de actividad de los usuarios.
FROM mensajesUniversitarios
begin
DECLARE @q int
SELECT @q = count(o.IDO)
FROM
(SELECT id as IDO
FROM mensajesUniversitarios
WHERE DATEPART(HOUR, hora) BETWEEN @start_time and @end_time) o
LEFT JOIN
(SELECT id as IDA
FROM mensajesUniversitarios
ON o.IDO = a.IDA
RETURN @q
end
print dbo.mensajes_por_hora(14,16);
→ Propósito: Conocer la cantidad de mensajes enviados por día de semana según el mes
deseado. Esta sentencia es valiosa para el equipo de negocio debido a que conoce que días los
usuarios suelen estar más activos en la plataforma según el mes en el que se encuentran.
AS
FROM mensajesUniversitarios
→ Propósito: Conocer la cantidad de chats abiertos por carrera universitaria. Esta información
es valiosa para el negocio debido a que le permite conocer más a fondo que segmento es más
activo y crear estrategias en base a ello.
JOIN (
ON salasChatUniversitarios.id = su.salasChatUniversitarios_id) as a
ON a.universitarios_id = universitarios.id
GROUP BY carrera
begin
declare @q int
RETURN @q
end
as
begin
declare @q int
left join
JOIN planesUniversitarios_universitarios o
ON planesUnivesitarios.id = o.planes_univesitarios_id) a
RETURN @q
end
print dbo.universitarios_no_premium();
→ Propósito: Conocer cuántos universitarios están matriculados en un tipo de curso, esto para
poder saber si llegaron a matricularse de manera correcta.
GROUP BY c.id,c.nombre
→ Propósito: Conocer la cantidad de cursos que lleva el universitario, esto para poder saber si
está llevando la cantidad correcta de cursos.
GROUP BY u.id,u.nombre_completo
→ Propósito: Conocer la cantidad de universitarios por universidad que usa nuestra aplicación,
esto para poder promocionar más y tener más usuarios.
GROUP BY u.id,u.nombre
→ Propósito: Conocer la cantidad de alumnos por una universidad exacta, esto permitirá tener
una mejor organización.
SELECT u.id,u.nombre,COUNT(ucu.cursos_universidades_universidades_id)'Cantidad de
alumnos' FROM universidades u
GROUP BY u.id,u.nombre
→ Propósito: Mostrar el nombre o id del universitario que lleve la mayor cantidad de créditos,
esto para poder tener una mejor organización en la base de datos.
AS
GO
WHERE u.privada=1
•
→ Propósito: Conocer el padre de familia que realizó el último mensaje, para tener un orden
de la actividad de chats.
JOIN
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.salas_chat_padres_id =
salasChatPadres_padresFamilia_salas_chat_padres_id) a
ON a.padres_familia_id = padresFamilia.id
→ Propósito: Conocer la cantidad de chats por padre de familia, con el objetivo de conocer la
interacción en la aplicación de cada padre de familia.
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.padres_familia_id = padresFamilia.id
GROUP BY nombre_completo;
→ Propósito: Conocer el distrito de ambos padres de familia por chat, esto para poder tener
una mejor organización.
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.padres_familia_id = padresFamilia.id
order by idChats
→ Propósito: Mostrar cuántos mensajes realizó cada padre de familia, para tener
conocimiento de la interacción con la mensajería de la aplicación.
JOIN
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.salas_chat_padres_id =
salasChatPadres_padresFamilia_salas_chat_padres_id) a
ON a.padres_familia_id = padresFamilia.id
GROUP BY nombre_completo
ORDER BY quantity;
→ Propósito: Mostrar el nombre y correo del padre de familia que tiene más de 2 chats, por
motivos de organización en la base de datos.
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.padres_familia_id = padresFamilia.id
→ Propósito: Mostrar la cantidad de mensajes por chat. Con el fin de hacer un seguimiento del
almacenamiento en la mensajería.
JOIN
JOIN salasChatPadres_padresFamilia
ON salasChatPadres_padresFamilia.salas_chat_padres_id =
salasChatPadres_padresFamilia_salas_chat_padres_id) a
ON a.salas_chat_padres_id = salasChatPadres.id
GROUP BY nombre_sala
ORDER BY CantMensajes
• William Riega
→ Propósito: Propósito: Conocer la cantidad de colegios por distrito y que tengan más de dos
colegios, para que el padre de familia sepa si en su distrito hay opciones de colegios para elegir
db.colegio.aggregate([
{$match: {
$expr:
{$gte: [
{$size: "$reseña"}, 2]
}},
{$group: {
_id: "$ciudad",
}},
{$project:{
ciudad: "$_id",
_id:0,
quantity: 1,
}},
{$sort: {
quantity: 1
}},
])
→ Propósito: Conocer los nombres de los colegios que tienen dos o más servicios, es decir
inicial, primaria o secundaria, y el nombre de dichos servicios.
db.colegio.aggregate([
{$match: {
$expr:
{$gte: [
{$size: "$servicio"}, 2]
}},
{$project: {
_id:0,
nombre:1,
servicio: 1
}},
{$sort: {
nombre: 1
}},
])
→ Propósito: Conocer la cantidad de reseñas que se han hecho el 2022, para un análisis anual
de actividad.
db.reseña_colegio.aggregate([
{$match:{
}},
{$group: {
cantidad_de_reseñas:{$count:{}}
}}
]) → Propósito: Conocer los nombres de los colegios que tienen más de 7 de puntaje general y
6 de infraestructura, para saber cuáles son los mejores colegios con enseñanza de alta calidad
para sus hijos.
db.colegio.aggregate([
{$match:{
"calificacion_promedio.general":{$gte:7.0},
"calificacion_promedio.infraestructura":{$gte:6.0}
}},
{$group:{
_id: "$nombre"
}},
{$project: {
nombre:"$_id",
_id:0,
nombre_colegio:1,
}},
])
→ Propósito: Listar todos los distritos y ordenarlos en orden decreciente para ver la repetición
de cada uno.
db.padre_de_familia.aggregate([
{$project:{
_id:0,
distrito:1
}},
{$sort:{ distrito : -1 }}
])
db.padre_de_familia.aggregate([
{$match:{
sexo:{$eq:"Femenino"},
"premium.nombre_plan":{$eq:"Plan B"}
}},
{$group:{
_id:"$nombre_completo"
}},
{$project:{
_id:0,
nombre_cliente:"$_id"
}}
])
• Alejandro Cruz
→ Propósito: Conocer cuántos padres de familia han adquirido el servicio premium en un año,
mes y día determinado para conocer en qué época del año debemos intensificar nuestra
publicidad y así, incrementar nuestras ventas.
db.padre_de_familia.aggregate([
{$match:{
"premium.fecha_inicio" : {"$gte": new Date("2020-11-01T00:00:00.000Z")}
}},
{$group:{
_id:"$nombre_completo"
}},
{$project:{
_id:0,
nombre_cliente:"$_id"
}}
])
db.padre_de_familia.aggregate([
{$match:{
sexo:{$eq:"Masculino"},
"premium.nombre_plan":{$eq:"Plan A"}
}},
{$group:{
_id:"$nombre_completo"
}},
{$project:{
_id:0,
nombre_cliente:"$_id"
}}
])
→ Propósito: Conocer cuántos profesores enseñan en cada universidad, esto para poder hacer
una estimación de qué alumnos de qué universidad son los que crean más perfiles y son más
activos en la aplicación y hacer promociones en los sectores menos activos.
db.profesor.aggregate([
{$group: {
_id: "$nombre_universidad",
cantidad_de_profesores:{$count:{}}
}}
])
→ Propósito: Conocer la cantidad de reviews que se han hecho este año, esto para poder
hacer una estimación del tráfico de usuarios y crecimiento de estos con respecto a años
anteriores.
db.reseña_profesor.aggregate([
{$match:{
}},
{$group: {
cantidad_de_reseñas:{$count:{}}
}}
])
• Elizabeth Huaroto
→ Propósito: Conocer la cantidad de reviews por cada profesor de la base de datos, esto para
poder conocer cuales profesores tienen más popularidad y es un perfil que no necesita ser
revisado como sospechoso de ser falso.
db.profesor.aggregate([
$lookup:{
from:'reseña_profesor',
localField:'_id',
foreignField:'_id_profesor',
as:'reseña_profesor'
},
$project:{
_id:0,
nombre_profesor:1,
nombre_curso:1,
nombre_universidad:1,
total_reseñas:{$size:'$reseña_profesor'}
])
db.profesor.aggregate([
{$match:{
nombre_universidad:{$eq:"Universidad de Lima"}
}},
{$group: {
_id: "$nombre_universidad",
cantidad_de_profesores:{$count:{}}
}}
])