Volver a la lista de artículos Artículos
Lectura de 15 minutos

Preguntas de la entrevista Meta SQL

Las entrevistas de Meta SQL son duras, y necesitas perfeccionar tus habilidades si quieres conseguir un trabajo prestigioso y bien remunerado. Siga leyendo para averiguar qué tipo de preguntas de entrevista SQL le pueden hacer en una Meta, cuál es la mejor forma de prepararse y cómo destacar entre la multitud.

Meta es una empresa muy orientada a los datos, que utiliza una amplia variedad de tecnologías de bases de datos. MySQL es su base de datos principal, pero también tienen bases de datos especiales para diversas aplicaciones.

Sea cual sea el puesto que solicites, lo más probable es que interactúes con bases de datos. Meta es más propensa que la mayoría de las empresas a incluir preguntas relacionadas con SQL en las entrevistas.

Si estás pensando en solicitar un puesto en Meta, merece la pena que consultes los ejemplos de preguntas de entrevista de Meta sobre SQL y practiques todo lo que puedas.

Si aún no estás familiarizado con SQL, quizá te interese inscribirte en nuestro curso de aprendizaje SQL de la A a la Z. Este conjunto de cursos te lleva desde el nivel principiante hasta temas avanzados de SQL. Adquirirá experiencia práctica trabajando en más de 700 ejercicios guiados, además de familiarizarse con los conceptos de las bases de datos relacionales.

Si tiene cierta experiencia con SQL pero no ha utilizado muchas de sus funciones avanzadas, nuestro cursoSQL avanzado puede resultarle más adecuado. En todos nuestros cursos, accederá a una base de datos a través de su navegador de Internet, sin necesidad de descargar ni instalar nada. Además, dispondrá de ayuda en cada paso.

Ahora, supongamos que sabes algo de SQL y estás interesado en trabajar para Meta. ¿Qué deberías esperar durante una entrevista de trabajo en Meta SQL?

El proceso de selección de Meta

Los reclutadores de Meta evaluarán tus conocimientos técnicos, tu capacidad para resolver problemas y tu habilidad para trabajar bien en equipo. Es probable que el proceso completo dure de dos a tres meses e incluya varias rondas de entrevistas.

El primer paso es crear un perfil profesional en Meta. Si aún no lo has hecho, puedes visitar la página Crear un perfil profesional para empezar. Desde tu perfil podrás ver las ofertas de empleo recomendadas y crear alertas de empleo. También encontrarás una serie de recursos útiles, como guías de preparación para entrevistas y ejercicios prácticos.

Una vez que haya solicitado un empleo, recibirá materiales de preparación específicos para cada puesto a través de su perfil.

Veamos las fases de la entrevista por las que pasarás una vez que hayas enviado una solicitud de empleo.

Llamada inicial con un reclutador

  • Qué esperar: Te preguntarán por tu formación, experiencia y objetivos. También te preguntarán por qué quieres trabajar en Meta. El responsable de selección te informará sobre el puesto y el equipo con el que trabajarás.
  • Cómo prepararte: En cuanto hayas solicitado el puesto, tómate tu tiempo:
  • Familiarizarte con la descripción del puesto.
  • Repasa tu experiencia y piensa en la mejor manera de demostrársela al seleccionador.
  • Haz una lista de preguntas para el reclutador.

Primera entrevista

  • Qué esperar: Esta entrevista puede realizarse por teléfono o (más probablemente) a través de una plataforma de reuniones en línea. Conocerás a algunos miembros del equipo de Meta y aprenderás más cosas sobre el puesto y con quién trabajarás.
  • Cómo prepararse: Tu reclutador te ayudará a prepararte para esta entrevista y te proporcionará cualquier material que puedas necesitar.

Entrevista de codificación

  • Qué esperar: Si has solicitado puestos como analista de datos o analista de marketing, el lenguaje de codificación puede ser SQL. La entrevista durará 45 minutos, 35 de los cuales se reservan para que resuelva dos preguntas de codificación de dificultad media a alta. Esta entrevista puede realizarse en persona o en línea.
  • Cómo prepararse: Tu reclutador te proporcionará material que te ayudará a preparar la entrevista. La mejor manera de prepararse para esta entrevista es practicar, practicar y practicar más. También tendrás que asegurarte de que conoces bien el lenguaje de programación de destino.
  • Qué busca el entrevistador: Te evaluará en función de:
  • Conocimientos técnicos.
  • Capacidad de resolución de problemas.
  • Su estilo de comunicación.
  • Capacidad para verificar su solución con datos de prueba pertinentes.

Consejos y sugerencias

El entrevistador está evaluando sus habilidades de comunicación, así que asegúrese de que:

  • Haz preguntas antes de empezar, para asegurarte de que has entendido bien el problema.
  • Esté preparado para explicar al entrevistador por qué ha elegido ese planteamiento del problema.
  • Escuchar atentamente cualquier comentario del entrevistador: puede estar insinuando que estás adoptando un enfoque equivocado.
  • Pregunta al entrevistador si no estás seguro de si puedes utilizar una funcionalidad específica (por ejemplo, funciones no estándar) en tu solución.

Además, recuerda que

  • El entrevistador también está intentando evaluar tu forma de enfocar los problemas, así que piensa en voz alta mientras trabajas.
  • Ten en cuenta los problemas de rendimiento: por ejemplo, ¿es probable que tu solución sea lenta o que utilice demasiado espacio en tablas temporales?
  • No introducirás tu solución en una base de datos, así que no tendrás ayuda con la sintaxis y no podrás probar cosas. Si tu entrevista es en persona, escribirás tu solución en una pizarra; si no, trabajarás en un simple editor de texto.
  • La sintaxis perfecta es menos importante que demostrar que puedes resolver problemas complejos.
  • Si ves más de una solución al problema, pregunta al entrevistador si te parece bien optar por la que prefieras.
  • Si ya has visto la pregunta antes, dilo. El entrevistador quiere evaluar cómo resuelves un problema nuevo ; para él será obvio si ya conoces la respuesta.

Por último, no olvides repasar los datos de muestra que utilizarás para probar tu solución.

Entrevista de diseño

Puede que esto no se aplique a algunos puestos; por ejemplo, los analistas de datos pueden tener en su lugar una entrevista relacionada con conocimientos estadísticos. Pero en esta entrevista, es posible que se le pida que cree un diseño de alto nivel para una aplicación típica del mundo real.

Es posible que tenga que demostrar su comprensión de los conceptos de RDBMS, así que asegúrese de que está al día en esta área.

Entrevista conductual

En esta entrevista se evalúa si encajará bien en el equipo.

¿Qué funciones de Meta requieren conocimientos de SQL?

La mayoría de las funciones en Meta implican un cierto grado de interacción con bases de datos. Estas son algunas de las funciones en las que puedes encontrarte con preguntas de SQL en la entrevista:

  • Científico de datos
  • Analista de datos
  • Ingeniero de software
  • Analista de productos
  • Analista de negocio
  • Ingeniero de aprendizaje automático
  • Analista de marketing
  • Administrador de bases de datos
  • Gestor de programas técnicos
  • Analista de crecimiento

Preparación para tu entrevista Meta SQL

Antes de empezar a solicitar un trabajo en Meta, deberías familiarizarte con sus productos, por ejemplo, Facebook, WhatsApp, Messenger e Instagram. Intenta visualizar qué puede estar pasando entre bastidores y qué datos subyacentes utilizan estos productos.

Lee sobre la cultura y los objetivos de la empresa y descárgate la guía de preparación de entrevistas de Meta. También puedes ver el vídeo de la entrevista de codificación de Meta para hacerte una mejor idea de lo que te espera.

Necesitarás mucha práctica con el tipo de preguntas que te pueden hacer en una entrevista de Meta. Intenta trabajar sólo con un editor de texto sencillo para introducir tus respuestas y pensar en voz alta mientras resuelves los problemas. Esto te ayudará a acostumbrarte a esta parte de la entrevista técnica.

Antes de empezar a practicar, es posible que desee realizar nuestra Evaluación de habilidades SQL para tener una mejor idea de las áreas en las que necesita mejorar. También disponemos de varias fichas descargables gratuitas que puede utilizar para repasar sus conocimientos:

Preguntas de la Entrevista Meta SQL: Teoría

Veamos ahora algunas preguntas de práctica que le darán una idea de lo que puede esperar en una entrevista Meta SQL. Se dividen en dos tipos: teóricas y prácticas. Es posible que le hagan preguntas teóricas durante una de las entrevistas verbales. O los temas pueden surgir cuando estés discutiendo tus soluciones en la entrevista de diseño. Las preguntas prácticas son similares a los problemas que se le puede pedir que resuelva durante la entrevista de codificación.

Pregunta 1 Tipos de JOIN en SQL

¿Cuál es la diferencia entre un INNER JOIN y un OUTER JOIN en SQL?

Un INNER JOIN devuelve sólo las filas que coinciden en ambas tablas. Un OUTER JOIN incluye las filas no coincidentes en el resultado de acuerdo con las siguientes reglas:

  • LEFT JOIN devuelve todas las filas de la tabla izquierda junto con la fila coincidente de la tabla derecha o nulos.
  • RIGHT JOIN devuelve todas las filas de la tabla de la derecha junto con la fila coincidente de la tabla de la izquierda o nulos.
  • FULL JOIN devuelve todas las filas de ambas tablas.

Pregunta 2: WHERE vs. HAVING

¿En qué¿Cuál es la diferencia entre la cláusula WHERE y la cláusula HAVING?

La cláusula WHERE filtra filas individuales por determinadas condiciones, mientras que la cláusula HAVING filtra grupos de filas por condiciones agregadas. Por lo tanto, HAVING sólo puede utilizarse con la cláusula GROUP BY.

Pregunta 3: Restricciones

Describa tres tipos de restricciones SQL.

Las restricciones imponen reglas que se aplican cuando se insertan, actualizan o eliminan filas en la base de datos; se definen cuando se crea una tabla. Existen varios tipos de restricciones, por lo que podrías elegir tres de las siguientes:

  • NOT NULL especifica que una columna no puede contener nulos.
  • UNIQUE especifica que los valores de esta columna no pueden duplicarse dentro de la tabla.
  • PRIMARY KEY especifica que esta columna se utilizará como clave primaria de la tabla, es decir, los valores deben ser únicos y no nulos para que puedan identificar cada fila.
  • FOREIGN KEY especifica que esta columna se vinculará a la clave primaria de otra tabla. Esto refuerza la integridad referencial.
  • CHECK define una condición para permitir sólo valores específicos en esta columna.
  • DEFAULT especifica un valor que se utilizará si no se especifica ningún valor al insertar datos en esta columna.
  • AUTO_INCREMENT especifica que la columna se establecerá automáticamente en el siguiente número de la secuencia en una inserción.

Pregunta 4: Transacciones

Explique qué se entiende por transacción en SQL. ¿Qué ocurrirá si el servidor se bloquea a mitad de una transacción?

Una transacción es un grupo de actualizaciones que deben realizarse como una unidad: o se realizan todas las actualizaciones o no se realiza ninguna. Un ejemplo podría ser la compra de un cliente, que actualiza la tabla customer la tabla sales tabla, la stock tabla y el libro de caja. Todas ellas deben actualizarse correctamente para que la transacción tenga éxito.

Una vez actualizados todos, puede confirmar la transacción y la base de datos se actualizará permanentemente. O puede revertir la transacción, en cuyo caso no se realizará ningún cambio en la base de datos. Si el sistema falla, ninguna de las actualizaciones será permanente y la base de datos no reflejará la transacción.

Pregunta 5: Procedimientos Almacenados vs. Funciones

¿Cuál es la diferencia entre un procedimiento almacenado y una función en SQL? Dé un ejemplo de cuándo se puede utilizar cada uno.

Un procedimiento almacenado es un conjunto de sentencias SQL predefinidas que llevan a cabo una tarea. Los procedimientos almacenados pueden devolver opcionalmente uno o más valores y pueden tomar parámetros. Se invocan mediante la sentencia CALL. Algunos ejemplos pueden ser la extracción de datos para un informe o la realización de procedimientos de liquidación de fin de año.

Las funciones también son un conjunto de sentencias SQL predefinidas, pero siempre devuelven exactamente un objeto. El objeto puede ser un valor o una tabla. Las funciones pueden aceptar parámetros y utilizarse en sentencias SQL del mismo modo que las columnas de la base de datos. Algunos ejemplos son la realización de cálculos para incorporar reglas de negocio y la aplicación de formatos personalizados.

Pregunta 6: Inyección SQL

¿Qué eses la inyección SQL (SQLi)? Describa dos formas en las que un programador podría protegerse contra un ataque SQLi.

La inyección SQL es una forma de inyectar código malicioso en una sentencia SQL, normalmente para actualizar de forma fraudulenta la base de datos.

Imagine un programa que construye una sentencia SQL como una cadena de texto. Cuando los clientes realizan solicitudes en línea, proporcionan detalles que se utilizarán en el código SQL.

Como ejemplo muy sencillo, el programa puede construir una sentencia SQL a partir del texto SELECT * FROM customer WHERE account_no =   con el sufijo del número de cuenta introducido por el cliente. Si el cliente introduce el número de cuenta como 12404; UPDATE customer SET balance_owing = 0 WHERE account_no = 12404, la sentencia de actualización maliciosa se inyecta en la base de datos.

Un programador puede protegerse de esta situación de dos maneras:

  • Ejecutar algunas comprobaciones en la sentencia SQL resultante antes de ejecutarla.
  • Utilizar sentencias preparadas, de forma que el número de cuenta se utilice como parámetro y no para construir la sentencia.

Preguntas de la Entrevista Meta SQL: Práctica

Para el propósito de las preguntas prácticas de la entrevista SQL, supongamos una base de datos que contiene las siguientes tablas y columnas.

Table nameUsersPostsEventevent_activityinteractions
containsuser_idpost_idevent_idevent_act_idinter_id
thenameuser_idHostevent_idaction
rows:locationdatetime_posteddatetime_eventuser_iduser_id
date_joineddetailsDetailsdatetime_acttarget_type
response_typetarget_id

Pregunta 1: Estadísticas de Uso

Calcule el porcentaje de usuarios que no han enviado mensajes este año.

Pensándolo bien

Se puede plantear de varias maneras. La más sencilla probablemente sea utilizar una expresión común de tabla (CTE) para contar el número de usuarios distintos en la tabla posts donde la parte del año de la fecha es la misma que la parte del año de la fecha actual.

A continuación, puede escribir una consulta simple para contar el número de usuarios en la tabla users unirla a la tabla CTE y realizar un cálculo para obtener el porcentaje.

Ejemplo de respuesta

WITH posting_users AS 
(
  SELECT 
    COUNT(DISTINCT user_id) AS posting_users 
  FROM posts
  WHERE year(datetime_posted) = year(current_date)
)
SELECT 
  100 - (posting_users / COUNT(*) * 100) AS percent_inactive
FROM users 
JOIN posting_users;

Pregunta 2: Identificar anfitriones de eventos activos

Enumere el usuario ID, nombre de usuario, número de eventos y número total de asistentes a eventos de todos los usuarios que han programado más de 10 eventos este año.

Información adicional: Las aceptaciones son filas de la tabla event_activity que tienen el tipo de respuesta "En curso".

El anfitrión de la tabla events con el ID de usuario de la tabla users para encontrar al usuario que programó el evento.

Pensándolo bien

Tendrá que unir la tabla event la tabla event_activity y la tabla users para obtener la información correcta. La tabla event_activity debe utilizar LEFT JOIN, ya que no se le ha pedido que excluya los eventos que no tienen asistentes. Este join debe incluir la condición de que la respuesta debe ser "Going".

Agrupando por el anfitrión, puede incluir un recuento distinto del ID del evento para obtener el número de eventos y un recuento de los user_id en la tabla event_activity para obtener el número de asistentes.

Tendrás que incluir una cláusula HAVING para filtrar por el número de eventos.

Ejemplo de respuesta

SELECT 
  host, 
  name,  
  COUNT(DISTINCT e.event_id), 
  COUNT(a.user_id) AS attendees
FROM event e
JOIN users u ON u.user_id = host
LEFT JOIN event_activity a 
  ON e.event_id = a.event_id
  AND response_type = 'Going'
GROUP BY host, name
HAVING COUNT(DISTINCT e.event_id) > 10
ORDER BY name

Pregunta 3: Búsqueda de los principales usuarios avanzados

Busca los 10 usuarios más importantes (ordenados por el número total de "Me gusta" de sus publicaciones) y enumera su clasificación, ID de usuario, nombre y número total de "Me gusta".

Información adicional: Los usuarios avanzados son aquellos que han publicado más de 500 entradas este año y tienen una media de más de 150 me gusta por entrada.

Los "Me gusta" de las publicaciones se registran en la tabla interactions con action que contiene "Like" y target_type que contiene "Post". El ID del objetivo puede utilizarse para unirse a la tabla posts en el ID de la entrada.

Pensándolo bien

Primero tendrás que encontrar el número de publicaciones y el número de me gusta de cada usuario para este año. Puedes hacerlo con un CTE.

En la consulta principal, puedes unir el CTE con la tabla de usuarios para obtener el nombre del usuario. Filtra el CTE para extraer sólo los usuarios avanzados.

Puede utilizar la función de ventana RANK() para clasificar a los usuarios por número de "me gusta" y utilizar la cláusula LIMIT para limitar los resultados a los 10 primeros usuarios avanzados.

Ejemplo de respuesta

WITH user_posts AS
(
  SELECT p.user_id,  COUNT(DISTINCT post_id) AS num_posts, 
  COUNT(inter_id) AS likes
  FROM posts p
  LEFT JOIN interactions ON post_id = target_id
    AND target_type = 'POST'
    AND action = 'Like'
  WHERE year(datetime_posted) = year(current_date)
  GROUP BY user_id
)
SELECT 
  RANK() OVER (ORDER BY likes DESC) AS position,
  u.user_id, 
  name, 
  likes
FROM users u
JOIN user_posts p ON u.user_id = p.user_id
WHERE num_posts > 500 
  AND likes/num_posts > 150
LIMIT 10;

Pregunta 4: Analizar la actividad interanual de los usuarios

Para los últimos 5 años, compare el número de usuarios activos año tras año. Indique el año, el total de usuarios activos y la variación con respecto al año anterior.

Información adicional: Los usuarios activos han realizado al menos una publicación durante el año.

Pensándolo bien

Tendrás que extraer un recuento del número de usuarios por año de la tabla posts tabla. Para facilitar la lectura, puede hacerlo como CTE. A continuación, deberá utilizar la función de ventana LAG() para comparar los resultados interanuales.

Ejemplo de respuesta

WITH activity AS
(
  SELECT year(datetime_posted) AS year, 
  COUNT(distinct user_id) AS active_users
  FROM posts 
  WHERE year(current_date) - year(datetime_posted) < 6
  GROUP BY year(datetime_posted)
)
SELECT 
  year, 
  active_users,
  (active_users - 
     LAG(active_users) OVER (ORDER BY year) ) * 100/active_users AS percentage_change
FROM activity;

Búsqueda de recursos para la preparación de la entrevista Meta SQL

La forma más importante de prepararse es resolver una amplia gama de problemas de práctica. Su objetivo debe ser resolver con confianza dos preguntas de dificultad media a alta en 35 minutos.

Recuerde pensar en voz alta mientras trabaja en su solución. Utiliza un editor de texto o papel y lápiz para desarrollar tu solución y simular la situación de la entrevista. Por supuesto, después puedes probar tus soluciones en una base de datos real para asegurarte de que funcionan.

En la entrevista, es probable que utilices coderpad.io, por lo que vale la pena probarlo de antemano.

Tómate tu tiempo para explorar el centro de preparación de tu perfil profesional de Meta. Encontrarás mucho material útil, incluidos rompecabezas de codificación que puedes utilizar para practicar.

LearnSQL.es tiene varios recursos útiles para practicar y realizar entrevistas:

Quizás el recurso de práctica más valioso sea LearnSQL.es's Advanced Practice Track, donde podrá trabajar con cientos de ejemplos realistas. Puedes probar tus soluciones en una base de datos real y obtener consejos y sugerencias cuando te atasques.

Empieza hoy mismo y ¡supera esa entrevista!