Entrenador

Un simulador de trabajo con datos: tickets de compañeros, tareas reales, SQL de verdad.

217 tickets · 30 abiertos para todos
  1. Ahora

    #1Primer contacto con los datos

    SELECTDificultad 1 de 3
    Abrir ticket
  2. #2Una lista de precios breveSELECT→
  3. #3Lista de precios para sociosSELECT→
  4. #4El precio con descuentoSELECT→
  5. #5Una etiqueta sin céntimosSELECT→
  6. #6La etiqueta ya montadaSELECTSTRINGS→
  7. #7Segmentos de precioSELECT→
  8. #8Qué categorías tenemos siquieraSELECT→
  9. #9Solo teléfonosWHERE→
  10. #10Todo menos los teléfonosWHERE→
  11. #11Pocas existenciasWHERE→
  12. #12La selección económicaWHERE→
  13. #13Teléfonos asequiblesWHERE→
  14. #14Portátiles de gama altaWHERE→
  15. #15Productos que requieren atenciónWHERE→
  16. #16Rebajas con varias condicionesWHERE→
  17. #17El segmento medioWHERE→
  18. #18Dispositivos móvilesWHERE→
  19. #19Buscando «Pro»WHERE→
  20. #20La familia GalaxyWHERE→
  21. #21Un catálogo sin SonyWHERE→
  22. #22Búsqueda que ignora mayúsculasWHERE→
  23. #23El catálogo por orden alfabéticoSELECTORDER BY→
  24. #24Los más baratos arribaSELECTORDER BY→
  25. #25Productos caros para el escaparateORDER BYWHERE→
  26. #26Los tres más carosSELECTORDER BY→
  27. #27La segunda páginaSELECTORDER BY→
  28. #28La tercera página del catálogoSELECTORDER BY→
  29. #29El catálogo por estantesSELECTORDER BY→
  30. #30Reglas de descuentoSELECT→
  31. #31Cuántos productos hay en totalSELECTAGGREGATE
  32. #32Cuántas categorías haySELECTAGGREGATE
  33. #33Cuántos productos caros hayWHEREAGGREGATE
  34. #34El más barato y el más caroSELECTAGGREGATE
  35. #35Las existencias totales del almacénSELECTAGGREGATE
  36. #36El valor de las existenciasSELECTAGGREGATE
  37. #37El precio medio del catálogoSELECTAGGREGATE
  38. #38El resumen del catálogoSELECTAGGREGATE
  39. #39Un resumen con desglosesWHEREAGGREGATE
  40. #40Más caros que la mediaWHERESUBQUERYAGGREGATE
  41. #41Los tres más caros por encima de la mediaORDER BYWHERESUBQUERY+1
  42. #42Nombres más largos que la mediaORDER BYWHERESUBQUERY+2
  43. #43Por encima o por debajo de la mediaSUBQUERYAGGREGATE
  44. #44Cuántos productos hay en cada categoríaGROUP BYAGGREGATE
  45. #45Existencias por categoríaGROUP BYAGGREGATE
  46. #46El buque insignia de cada categoríaGROUP BYAGGREGATE
  47. #47Categorías con más de 2 productosGROUP BYHAVINGAGGREGATE
  48. #48Categorías premiumGROUP BYHAVINGAGGREGATE
  49. #49Categorías por encima de la media generalGROUP BYHAVINGSUBQUERY+1
  50. #50Categorías por existenciasGROUP BYORDER BYAGGREGATE
  51. #51Un perfil de las categoríasGROUP BYAGGREGATE
  52. #52Una lista de precios en otras monedasJOINWHERE
  53. #53Una tabla aparte para las categoríasDDLCONSTRAINTS
  54. #54Llenamos las categoríasDML
  55. #55El precio medio por categoríaJOINGROUP BYAGGREGATE
  56. #56Preparamos la clave hacia las categoríasDDL
  57. #57Vinculamos productos con categoríasWHERESUBQUERYDML
  58. #58Un vínculo protegido: FOREIGN KEYDDLCONSTRAINTS
  59. #59La categoría de un producto por claveJOIN
  60. #60Un producto nuevo en el catálogoDML
  61. #61Descuento en portátilesWHEREDML
  62. #62Retiramos una línea de productoWHEREDML
  63. #63Quitamos el texto sobranteDDL
  64. #64Cerramos la línea de cámaras (por id)WHERESUBQUERYDML
  65. #65Una tabla nueva: clientesDDLCONSTRAINTS
  66. #66Llenamos los clientesDML
  67. #67Una tabla nueva: pedidosDDLCONSTRAINTS
  68. #68Llenamos los pedidosDATESDML
  69. #69¿De verdad funciona la clave?DATESDML
  70. #70Pedidos con el nombre del clienteJOIN
  71. #71Pedidos con etiqueta de tamañoJOIN
  72. #72Cuánto ha gastado cada clienteJOINGROUP BYAGGREGATE
  73. #73Una columna nueva: emailDDL
  74. #74Registramos los correos de los clientesDML
  75. #75Protección contra duplicados: UNIQUEDDLCONSTRAINTS
  76. #76Todos los clientes y sus pedidosJOINGROUP BYAGGREGATE
  77. #77Clientes activos y dormidosJOINGROUP BYAGGREGATE
  78. #78Ingresos por estadoGROUP BYAGGREGATE
  79. #79Los ingresos realesWHEREAGGREGATE
  80. #80El ticket medioSELECTAGGREGATE
  81. #81Quién hace los pedidos más grandesJOINGROUP BYORDER BY+2
  82. #82El mejor clienteJOINGROUP BYORDER BY+2
  83. #83Los pedidos de un mesWHEREDATES
  84. #84URL de los productos (slug)STRINGSDDLDML
  85. #85Clientes por dominio de correoGROUP BYSTRINGSAGGREGATE
  86. #86Pedidos por dominio de correoJOINGROUP BYSTRINGS+1
  87. #87Servicios de correo popularesGROUP BYHAVINGSTRINGS+1
  88. #88Dominios por mesJOINGROUP BYDATES+2
  89. #89¿Aceptará la base un correo duplicado?DML
  90. #90Etiquetas para la versión móvilWHERESTRINGS
  91. #91Clientes por ciudadGROUP BYAGGREGATE
  92. #92Ciudades silenciosasJOINGROUP BYHAVING+1
  93. #93Ciudades silenciosas por dineroJOINGROUP BYHAVING+1
  94. #94Ingresos por ciudadJOINGROUP BYAGGREGATE
  95. #95Clientes recurrentesJOINGROUP BYHAVING+1
  96. #96Clientes recurrentes con un CTEJOINGROUP BYWHERE+2
  97. #97Pedidos por mesGROUP BYDATESAGGREGATE
  98. #98Meses fuertesGROUP BYHAVINGDATES+1
  99. #99El mes como fecha de verdadGROUP BYORDER BYDATES+1
  100. #100Pedidos después de la nóminaWHEREDATES
  101. #101Pedidos recientesWHERESUBQUERYDATES+1
  102. #102Los tres pedidos más recientesSELECTORDER BYDATES
  103. #103La estación del pedidoSELECTDATES
  104. #104Los tres mejores clientesJOINGROUP BYORDER BY+2
  105. #105Pedidos por encima de la mediaWHERESUBQUERYAGGREGATE
  106. #106Un reparto compartidoJOIN
  107. #107Quién no ha pedido nuncaWHERESUBQUERY
  108. #108Pedidos por tamañoGROUP BYAGGREGATE
  109. #109La cola de tramitaciónSELECTORDER BY
  110. #110Los grupos grandes de pedidosGROUP BYHAVINGAGGREGATE
  111. #111El gasto de todos los clientesJOINGROUP BYAGGREGATE
  112. #112Las líneas de pedidoDDLCONSTRAINTS
  113. #113Llenamos las líneasDML
  114. #114Comprado más baratoJOINWHERE
  115. #115Un índice sobre una clave foráneaDDL
  116. #116Una tabla para experimentarDATESDDLDML
  117. #117Qué dice el plan de la consultaDDL
  118. #118Subir los precios y ver el resultadoWHEREDML
  119. #119Una tabla intermedia para la lista de preciosDDLDML
  120. #120Aplicar la lista de preciosWHEREDML
  121. #121Recoger después de uno mismoDDL
  122. #122Quién compró quéJOIN
  123. #123Ventas por productoJOINGROUP BYAGGREGATE
  124. #124Ingresos por productoJOINGROUP BYAGGREGATE
  125. #125Ingresos por categoríaJOINGROUP BYAGGREGATE
  126. #126Top 3 entre las categorías variadasJOINGROUP BYHAVING+2
  127. #127La cuota de una categoría en los ingresosJOINGROUP BYSUBQUERY+2
  128. #128Cuánto se alejan del líderJOINGROUP BYCTE+2
  129. #129Categorías por fuerzaJOINGROUP BYCTE+1
  130. #130El catálogo con los ingresosJOINGROUP BYCTE+1
  131. #131Dos desgloses en una consultaJOINGROUP BYAGGREGATE
  132. #132Todos los desgloses de golpeJOINGROUP BYAGGREGATE
  133. #133El calendario de abril sin huecosJOINGROUP BYORDER BY+2
  134. #134El total frente a la suma de las líneasJOINGROUP BYAGGREGATE
  135. #135El acumulado de los ingresosORDER BYWINDOWDATES+1
  136. #136La media móvilORDER BYWINDOWDATES+1
  137. #137Ranking de clientes por gastoJOINGROUP BYORDER BY+2
  138. #138Ranking de todos los clientesJOINGROUP BYORDER BY+2
  139. #139Quién es el líderJOINGROUP BYORDER BY+2
  140. #140Ranking entre las categorías grandesJOINGROUP BYHAVING+3
  141. #141El líder de cada categoríaJOINGROUP BYORDER BY+4
  142. #142Categorías con ingresos altosJOINGROUP BYWHERE+3
  143. #143Productos que nadie ha compradoWHERESUBQUERYUNION
  144. #144Los más caros que no se vendenJOINORDER BYWHERE
  145. #145Dos listas en unaWHERESUBQUERYUNION
  146. #146La lista sin repeticionesWHERESUBQUERYUNION
  147. #147Los peores candidatosWHERESUBQUERYUNION
  148. #148Categorías que se han quedado vacíasWHERESUBQUERY
  149. #149Una comparación segura frente a NULLWHEREAGGREGATE
  150. #150Calcular los totales de los pedidosWHERESUBQUERYAGGREGATE
  151. #151Una vista para el catálogoJOINDDL
  152. #152Una vista sobre un agregadoJOINGROUP BYDDL+1
  153. #153Cómo cambian los ingresos cada mesGROUP BYORDER BYWHERE+3
  154. #154El cambio sin celdas vacíasGROUP BYORDER BYCTE+3
  155. #155Los tramos de precio del catálogoORDER BYWINDOW
  156. #156¿Vuelven los clientes?JOINORDER BYWINDOW+1
  157. #157Un informe con subtotalesJOINGROUP BYORDER BY+1
  158. #158Una fila de total a manoJOINGROUP BYUNION+1
  159. #159La lista de precios del proveedorDML
  160. #160El descuento: la columna, los datos y la reglaWHEREDDLDML+1
  161. #161Protección contra un precio absurdoDDLCONSTRAINTS
  162. #162Un estado por defectoDATESDDLDML+1
  163. #163Deshacer solo lo que sobraWHEREDMLTRANSACTION
  164. #164Reservar existencias con seguridadWHEREDMLTRANSACTION
  165. #165La tabla de reseñasDDLCONSTRAINTS
  166. #166Las primeras reseñasDML
  167. #167Una nota fuera de escalaDML
  168. #168La valoración de los productosJOINGROUP BYAGGREGATE
  169. #169Puestos por valoraciónJOINGROUP BYORDER BY+2
  170. #170Los más flojos por valoraciónJOINGROUP BYORDER BY+1
  171. #171El tono de las reseñasGROUP BYAGGREGATE
  172. #172Qué se escribe sobre la bateríaJOINWHERE
  173. #173Las reseñas más detalladasJOINORDER BYSTRINGS
  174. #174Ingresos por reseñaJOINGROUP BYAGGREGATE
  175. #175El desfase entre ventas y reseñasJOINWHERESUBQUERY
  176. #176Productos sin reseñasJOINWHERE
  177. #177Valoración frente a ingresosJOINGROUP BYCTE+1
  178. #178Reseñas de quien no compróJOINWHERESUBQUERY
  179. #179Un vínculo «muchos a muchos»DDLCONSTRAINTS
  180. #180Trasladar los vínculos existentesDML
  181. #181Un producto en varias categoríasDML
  182. #182Un producto con todas sus categoríasJOINGROUP BYORDER BY+2
  183. #183Cuántos productos hay ahora en una categoríaJOINGROUP BYAGGREGATE
  184. #184Productos en dos estantesJOINGROUP BYHAVING+1
  185. #185Categorías vecinasJOINGROUP BYAGGREGATE
  186. #186Quitar un vínculo que sobraWHEREDML
  187. #187Ingresos por categoría tras el M:NJOINGROUP BYAGGREGATE
  188. #188Quitar la columna que sobraDDL
  189. #189La tabla de pagosDDLCONSTRAINTS
  190. #190El extracto de contabilidadDATESDML
  191. #191Un pago sin importeDML
  192. #192Qué está todavía sin pagarJOINWHERE
  193. #193Conciliación de pagosJOINGROUP BYHAVING+1
  194. #194Con qué se paga exactamenteGROUP BYAGGREGATE
  195. #195En qué meses entró el dineroSELECTORDER BYDATES
  196. #196Cuánto pagó cada clienteJOINGROUP BYAGGREGATE
  197. #197Cómo se fue acumulando el dineroORDER BYWINDOWDATES+1
  198. #198El último pago de cada pedidoSELECTORDER BYDATES
  199. #199Dinero por algo canceladoJOINGROUP BYWHERE+1
  200. #200La tabla de envíosDDLCONSTRAINTS
  201. #201El registro de envíosDATESDML
  202. #202Pagado pero no enviadoWHERESUBQUERY
  203. #203Cuántos días tarda la entregaJOINWHEREDATES
  204. #204Qué está ahora mismo en caminoJOINWHEREDATES
  205. #205La carga de trabajo de los transportistasGROUP BYHAVINGAGGREGATE
  206. #206Qué espera para salirJOINGROUP BYWHERE+1
  207. #207Quién entrega más rápidoJOINGROUP BYWHERE+2
  208. #208Cuánto tardamos en preparar el paqueteJOINGROUP BYDATES+1
  209. #209Enviado sin esperar al dineroJOINGROUP BYHAVING+2
  210. #210¿Estropea la nota una entrega larga?JOINWHEREDATES
  211. #211Hay reseña pero no hay dineroJOINWHERESUBQUERY
  212. #212Con qué se paga en cada ciudadJOINGROUP BYAGGREGATE
  213. #213La ficha de un pedidoJOINWHERESUBQUERY+1
  214. #214La cronología de un pedidoJOINUNIONDATES
  215. #215El estado de los pedidos de un vistazoJOINGROUP BYDATES+1
  216. #216Un pedido de principio a finWHERESUBQUERYDATES+3
  217. #217Cerrar los pedidos estancadosWHERESUBQUERYDATES+1