Spaces:
Sleeping
Sleeping
| { | |
| "CLIENTES_CERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para el nombre del cliente usar SIEMPRE 'Razon Social'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Un cliente cero es aquel que NO tiene compras en las últimas 4 semanas", | |
| "Para ciudad usar SIEMPRE la columna 'Ciudad' con LIKE", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por la columna adecuada cuando se use una función de agregación", | |
| "Si se compara un cliente específico, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuántos clientes permanecen como cero?", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n);" | |
| }, | |
| { | |
| "pregunta": "¿Quiénes son los clientes que siguen inactivos?", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Dame la lista de clientes sin movimientos", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n);" | |
| } | |
| ] | |
| }, | |
| "CIUDAD_CERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para el nombre del cliente usar SIEMPRE 'Razon Social'", | |
| "Para ciudad usar SIEMPRE la columna 'Ciudad' con LIKE", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Un cliente cero es aquel que NO tiene compras en las últimas 4 semanas", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por la columna adecuada cuando se use una función de agregación", | |
| "Si se compara una ciudad específica, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuántos clientes cero tenemos por ciudad?", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\"\nORDER BY clientes_cero DESC;" | |
| }, | |
| { | |
| "pregunta": "Clientes cero en Guadalajara", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Guadalajara%'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Clientes cero en Zapopan", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Zapopan%'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Clientes inactivos en Vallarta", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Vallarta%'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Total de clientes sin compras recientes por ciudad", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Clientes que no compraron en las últimas 4 semanas por ciudad", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Lista de clientes sin compras recientes por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('now', '-28 day')\n)\nORDER BY \"Ciudad\";" | |
| } | |
| ] | |
| }, | |
| "PRODUCTO_CIUDAD": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para productos usar la columna 'Descripcion'", | |
| "Para ciudad usar SIEMPRE la columna 'Ciudad' con LIKE", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para cantidades usar SUM(\"Cantidad\"), para dinero usar SUM(\"Neto\")", | |
| "Agrupar siempre por la dimensión principal (producto o ciudad) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Si se compara un producto específico o ciudad específica, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Cuántos productos se vendieron en la ciudad de Guadalajara?", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Guadalajara%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC;" | |
| }, | |
| { | |
| "pregunta": "Lista de productos más vendidos por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Descripcion\"\nORDER BY \"Ciudad\", total_vendido DESC;" | |
| }, | |
| { | |
| "pregunta": "Qué producto se vendió más en la ciudad de Zapopan?", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Zapopan%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Productos con mayor cantidad vendida en Guadalajara", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Guadalajara%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC;" | |
| }, | |
| { | |
| "pregunta": "Top 5 productos por ventas en la ciudad de Colima", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Colima%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC\nLIMIT 5;" | |
| }, | |
| { | |
| "pregunta": "Productos que más ingresos generaron en Tepic", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Tepic%'\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Cuáles son los productos más populares en la ciudad de Vallarta?", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Vallarta%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC;" | |
| }, | |
| { | |
| "pregunta": "Ranking de ventas de productos por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Descripcion\"\nORDER BY \"Ciudad\", total_vendido DESC;" | |
| }, | |
| { | |
| "pregunta": "Producto más vendido en la ciudad de Planta", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Planta%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Dame los productos que más se vendieron en Guadalajara", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nAND \"Ciudad\" LIKE '%Guadalajara%'\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC;" | |
| } | |
| ] | |
| }, | |
| "CLIENTE_CIUDAD": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para clientes usar la columna 'Razon Social'", | |
| "Para ciudad usar SIEMPRE la columna 'Ciudad' con LIKE", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para cantidades usar SUM(\"Cantidad\"), para dinero usar SUM(\"Neto\")", | |
| "Agrupar siempre por la dimensión principal (cliente o ciudad) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Si se compara un cliente específico o ciudad específica, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Clientes más valiosos por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\", SUM(\"Neto\") AS total_compra\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Razon Social\"\nORDER BY \"Ciudad\", total_compra DESC;" | |
| }, | |
| { | |
| "pregunta": "Dame los clientes con mayor compra por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\", SUM(\"Neto\") AS total_compra\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Razon Social\"\nORDER BY \"Ciudad\", total_compra DESC;" | |
| }, | |
| { | |
| "pregunta": "Clientes frecuentes en la ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\", COUNT(\"Descripcion\") AS total_compras\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Razon Social\"\nORDER BY \"Ciudad\", total_compras DESC;" | |
| }, | |
| { | |
| "pregunta": "Total de clientes por ciudad", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS total_clientes\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Distribución de clientes activos por ciudad", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS total_clientes_activos\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND DATE(\"Fecha\") > DATE('now', '-28 day')\nGROUP BY \"Ciudad\"\nORDER BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Clientes que compran más en cada ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\", SUM(\"Cantidad\") AS total_unidades\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\", \"Razon Social\"\nORDER BY \"Ciudad\", total_unidades DESC;" | |
| }, | |
| { | |
| "pregunta": "Lista de clientes por ciudad", | |
| "query": "SELECT \"Ciudad\", \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\", \"Razon Social\";" | |
| }, | |
| { | |
| "pregunta": "Cantidad de clientes por ciudad", | |
| "query": "SELECT \"Ciudad\", COUNT(DISTINCT \"Razon Social\") AS total_clientes\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_clientes DESC;" | |
| } | |
| ] | |
| }, | |
| "PRODUCTO_DINERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para productos usar la columna 'Descripcion'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para dinero usar SUM(\"Neto\")", | |
| "Agrupar siempre por la dimensión principal (producto o ciudad) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Si se compara un producto específico o ciudad específica, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Productos que generan más ingresos", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Producto con mayores ventas en dinero", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Top productos por ingresos", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC\nLIMIT 5;" | |
| }, | |
| { | |
| "pregunta": "Ingresos totales por producto", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Producto más rentable por unidad", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\")/SUM(\"Cantidad\") AS ingreso_por_unidad\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY ingreso_por_unidad DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Rentabilidad de cada producto", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\")/SUM(\"Cantidad\") AS ingreso_por_unidad\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY ingreso_por_unidad DESC;" | |
| }, | |
| { | |
| "pregunta": "Productos con mejor margen de ganancia", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Ingresos generados por producto", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Producto que más dinero genera", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Top 10 productos con mayores ingresos", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_ingresos DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Ingresos por Queso Adobera", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" LIKE '%Queso Adobera%'\nGROUP BY \"Descripcion\";" | |
| }, | |
| { | |
| "pregunta": "Rentabilidad del producto Aderezo Ranch", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\")/SUM(\"Cantidad\") AS ingreso_por_unidad\nFROM \"{table_name}\"\nWHERE \"Descripcion\" LIKE '%Aderezo Ranch%'\nGROUP BY \"Descripcion\";" | |
| }, | |
| { | |
| "pregunta": "Cuánto dinero genera Caja Plástica", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Descripcion\" LIKE '%Caja Plástica%'\nGROUP BY \"Descripcion\";" | |
| } | |
| ] | |
| }, | |
| "CIUDAD_DINERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para ciudad usar la columna 'Ciudad'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para dinero usar SUM(\"Neto\")", | |
| "Agrupar siempre por la dimensión principal (Ciudad) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Si se compara una ciudad específica, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Ciudades con mayor facturación", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_ingresos DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Ciudad con más ingresos en el último mes", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL AND strftime('%m', \"Fecha\") = '08'\nGROUP BY \"Ciudad\"\nORDER BY total_ingresos DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Total de dinero generado por ciudad", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Ingresos totales por ciudad", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_ingresos DESC;" | |
| }, | |
| { | |
| "pregunta": "Ticket promedio por ciudad", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\")/COUNT(DISTINCT \"Razon Social\") AS ticket_promedio\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY ticket_promedio DESC;" | |
| }, | |
| { | |
| "pregunta": "Ciudad con mayor ticket promedio", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\")/COUNT(DISTINCT \"Razon Social\") AS ticket_promedio\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY ticket_promedio DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Ingresos generados en Guadalajara", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Guadalajara%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Ingresos generados en Zapopan", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Zapopan%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Ingresos totales en Colima", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Colima%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Ventas totales en Tepic", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Tepic%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Crecimiento de ingresos en Vallarta", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Vallarta%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Dinero generado por productos en Planta", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Planta%'\nGROUP BY \"Ciudad\";" | |
| }, | |
| { | |
| "pregunta": "Ciudad que más dinero genera", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_ingresos DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Ingresos de Guadalajara por ventas", | |
| "query": "SELECT \"Ciudad\", SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\"\nWHERE \"Ciudad\" LIKE '%Guadalajara%'\nGROUP BY \"Ciudad\";" | |
| } | |
| ] | |
| }, | |
| "CLIENTE_DINERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para cliente usar la columna 'Razon Social'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para dinero usar SUM(\"Neto\")", | |
| "Agrupar siempre por la dimensión principal (Razon Social) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para fechas específicas usar DATE(\"Fecha\") con BETWEEN o <= según el caso", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Si se compara un cliente específico, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Top clientes por valor de compras", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Clientes que más dinero han gastado", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Clientes con mayor ticket promedio", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\")/COUNT(DISTINCT DATE(\"Fecha\")) AS ticket_promedio\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY ticket_promedio DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Total de dinero gastado por cliente", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC;" | |
| }, | |
| { | |
| "pregunta": "Clientes con compras de alto valor", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL AND SUM(\"Neto\") > 1000\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC;" | |
| }, | |
| { | |
| "pregunta": "Clientes con mayor frecuencia de compra", | |
| "query": "SELECT \"Razon Social\", COUNT(DISTINCT DATE(\"Fecha\")) AS frecuencia\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY frecuencia DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Clientes con mayor potencial de crecimiento", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado, COUNT(DISTINCT DATE(\"Fecha\")) AS frecuencia\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC, frecuencia DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Valor total de compras por cliente", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\";" | |
| }, | |
| { | |
| "pregunta": "Clientes que más contribuyen a los ingresos", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Clientes con mayores ingresos acumulados", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC;" | |
| }, | |
| { | |
| "pregunta": "Clientes con compras recientes de alto valor", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL AND DATE(\"Fecha\") > DATE('now','-30 day')\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Clientes más valiosos en el último mes", | |
| "query": "SELECT \"Razon Social\", SUM(\"Neto\") AS total_gastado\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL AND strftime('%m', \"Fecha\") = '08'\nGROUP BY \"Razon Social\"\nORDER BY total_gastado DESC\nLIMIT 10;" | |
| } | |
| ] | |
| }, | |
| "TIEMPO_DINERO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para dinero usar SUM(\"Neto\")", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Para fechas usar la columna \"Fecha\" con DATE() o strftime() según corresponda", | |
| "Agrupar por la dimensión temporal adecuada (día, semana, mes, año) al usar agregaciones", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Para comparativas usar BETWEEN o filtros de rango en DATE(\"Fecha\")", | |
| "Si se filtra por mes usar strftime('%m', \"Fecha\") = 'MM'", | |
| "Si se filtra por año usar strftime('%Y', \"Fecha\") = 'YYYY'" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuánto vendimos este mes?", | |
| "query": "SELECT SUM(\"Neto\") AS total_ventas_mes\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%m', \"Fecha\") = '08';" | |
| }, | |
| { | |
| "pregunta": "¿Cuál fue el mes con mayores ventas este año?", | |
| "query": "SELECT strftime('%m', \"Fecha\") AS mes, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%Y', \"Fecha\") = '2025'\nGROUP BY mes\nORDER BY total_ventas DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "¿Cuánto generamos en ingresos en junio?", | |
| "query": "SELECT SUM(\"Neto\") AS total_junio\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%m', \"Fecha\") = '06';" | |
| }, | |
| { | |
| "pregunta": "¿Cuál es la tendencia de ventas mensuales?", | |
| "query": "SELECT strftime('%m', \"Fecha\") AS mes, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY mes\nORDER BY mes ASC;" | |
| }, | |
| { | |
| "pregunta": "Ventas por día de la semana", | |
| "query": "SELECT strftime('%w', \"Fecha\") AS dia_semana, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY dia_semana\nORDER BY dia_semana ASC;" | |
| }, | |
| { | |
| "pregunta": "Promedio de ventas diarias", | |
| "query": "SELECT DATE(\"Fecha\") AS dia, AVG(\"Neto\") AS promedio_diario\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY dia\nORDER BY dia ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuánto se vendió el lunes pasado?", | |
| "query": "SELECT SUM(\"Neto\") AS total_lunes\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%w', \"Fecha\") = '1' AND DATE(\"Fecha\") BETWEEN DATE('now','-7 day') AND DATE('now');" | |
| }, | |
| { | |
| "pregunta": "¿Cuál fue el día con más ingresos este mes?", | |
| "query": "SELECT DATE(\"Fecha\") AS dia, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%m', \"Fecha\") = '08'\nGROUP BY dia\nORDER BY total_ventas DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Total de ventas acumuladas por mes", | |
| "query": "SELECT strftime('%m', \"Fecha\") AS mes, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY mes\nORDER BY mes ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuánto crecieron nuestras ventas comparando mayo y junio?", | |
| "query": "SELECT strftime('%m', \"Fecha\") AS mes, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%m', \"Fecha\") IN ('05','06')\nGROUP BY mes\nORDER BY mes ASC;" | |
| }, | |
| { | |
| "pregunta": "Ventas semanales del mes actual", | |
| "query": "SELECT strftime('%W', \"Fecha\") AS semana, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND strftime('%m', \"Fecha\") = strftime('%m','now')\nGROUP BY semana\nORDER BY semana ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuánto facturamos en la última semana?", | |
| "query": "SELECT SUM(\"Neto\") AS total_ventas_semana\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL AND DATE(\"Fecha\") BETWEEN DATE('now','-7 day') AND DATE('now');" | |
| }, | |
| { | |
| "pregunta": "Crecimiento interanual de ventas", | |
| "query": "SELECT strftime('%Y', \"Fecha\") AS anio, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY anio\nORDER BY anio ASC;" | |
| }, | |
| { | |
| "pregunta": "Comparativa de ingresos entre años", | |
| "query": "SELECT strftime('%Y', \"Fecha\") AS anio, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY anio\nORDER BY anio ASC;" | |
| }, | |
| { | |
| "pregunta": "Ingresos generados por mes", | |
| "query": "SELECT strftime('%m', \"Fecha\") AS mes, SUM(\"Neto\") AS total_ventas\nFROM \"{table_name}\"\nWHERE \"Neto\" IS NOT NULL\nGROUP BY mes\nORDER BY mes ASC;" | |
| } | |
| ] | |
| }, | |
| "CIUDADES": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para ciudad usar SIEMPRE la columna 'Ciudad'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por 'Ciudad' cuando se requiera contar o listar", | |
| "Si se pide un listado, usar DISTINCT para evitar duplicados" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuántas ciudades diferentes tenemos registradas?", | |
| "query": "SELECT COUNT(DISTINCT \"Ciudad\") AS total_ciudades\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL;" | |
| }, | |
| { | |
| "pregunta": "Lista de todas las ciudades registradas", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuáles son las ciudades que tenemos en la base?", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Nombra las ciudades únicas", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Dame un listado de ciudades", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuántas ciudades distintas aparecen en nuestra base?", | |
| "query": "SELECT COUNT(DISTINCT \"Ciudad\") AS total_ciudades\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL;" | |
| }, | |
| { | |
| "pregunta": "Muestra las ciudades disponibles", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Listado de ciudades al azar", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY RANDOM();" | |
| }, | |
| { | |
| "pregunta": "¿Cuáles son las ciudades registradas?", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Ciudades únicas de nuestra base", | |
| "query": "SELECT DISTINCT \"Ciudad\"\nFROM \"{table_name}\"\nWHERE \"Ciudad\" IS NOT NULL\nORDER BY \"Ciudad\" ASC;" | |
| } | |
| ] | |
| }, | |
| "CLIENTES": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para el nombre del cliente usar SIEMPRE 'Razon Social'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por 'Razon Social' cuando se requiera contar o listar", | |
| "Si se pide un listado, usar DISTINCT para evitar duplicados" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuántos clientes diferentes tenemos registrados?", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS total_clientes\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL;" | |
| }, | |
| { | |
| "pregunta": "Lista de todos los clientes registrados", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuáles son los clientes que tenemos en la base?", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Nombra los clientes únicos", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Dame un listado de clientes", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "¿Cuántos clientes distintos aparecen en nuestra base?", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS total_clientes\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL;" | |
| }, | |
| { | |
| "pregunta": "Muestra los clientes disponibles", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Listado de clientes al azar", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY RANDOM();" | |
| }, | |
| { | |
| "pregunta": "¿Cuáles son los clientes registrados?", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| }, | |
| { | |
| "pregunta": "Clientes únicos de nuestra base", | |
| "query": "SELECT DISTINCT \"Razon Social\"\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nORDER BY \"Razon Social\" ASC;" | |
| } | |
| ] | |
| }, | |
| "VENTAS": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para fechas usar siempre la columna 'Fecha' con DATE o strftime según corresponda", | |
| "Para el cliente usar SIEMPRE 'Razon Social'", | |
| "Para cantidades usar SUM(\"Cantidad\"), para dinero usar SUM(\"Neto\")", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por la columna adecuada cuando se use una función de agregación", | |
| "Para promedios usar AVG() según corresponda" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Desde cuándo tenemos registros de ventas?", | |
| "query": "SELECT MIN(DATE(\"Fecha\")) AS primera_fecha\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "¿Cuál es la primera fecha con ventas registradas?", | |
| "query": "SELECT MIN(DATE(\"Fecha\")) AS primera_fecha\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "¿Cuál es la última fecha con ventas registradas?", | |
| "query": "SELECT MAX(DATE(\"Fecha\")) AS ultima_fecha\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Rango de fechas de nuestro historial de ventas", | |
| "query": "SELECT MIN(DATE(\"Fecha\")) AS inicio, MAX(DATE(\"Fecha\")) AS fin\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "¿Cuántos días diferentes con ventas tenemos?", | |
| "query": "SELECT COUNT(DISTINCT DATE(\"Fecha\")) AS dias_venta\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Número total de días con actividad de ventas", | |
| "query": "SELECT COUNT(DISTINCT DATE(\"Fecha\")) AS dias_activos\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "¿Cuántas transacciones totales se han registrado?", | |
| "query": "SELECT COUNT(*) AS total_transacciones\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Total de ventas realizadas hasta la fecha", | |
| "query": "SELECT SUM(\"Cantidad\") AS total_unidades, SUM(\"Neto\") AS total_ingresos\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Promedio de ventas por día", | |
| "query": "SELECT AVG(dia_total) AS promedio_diario\nFROM (SELECT DATE(\"Fecha\") AS dia, SUM(\"Neto\") AS dia_total FROM \"{table_name}\" GROUP BY DATE(\"Fecha\"));" | |
| }, | |
| { | |
| "pregunta": "Valor promedio de ventas diarias", | |
| "query": "SELECT AVG(dia_total) AS promedio_diario\nFROM (SELECT DATE(\"Fecha\") AS dia, SUM(\"Neto\") AS dia_total FROM \"{table_name}\" GROUP BY DATE(\"Fecha\"));" | |
| }, | |
| { | |
| "pregunta": "Día con mayor número de transacciones", | |
| "query": "SELECT DATE(\"Fecha\") AS dia, COUNT(*) AS transacciones\nFROM \"{table_name}\"\nGROUP BY DATE(\"Fecha\")\nORDER BY transacciones DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Día con menor número de transacciones", | |
| "query": "SELECT DATE(\"Fecha\") AS dia, COUNT(*) AS transacciones\nFROM \"{table_name}\"\nGROUP BY DATE(\"Fecha\")\nORDER BY transacciones ASC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "Valor promedio de una venta", | |
| "query": "SELECT AVG(\"Neto\") AS promedio_venta\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Cantidad promedio de productos por venta", | |
| "query": "SELECT AVG(\"Cantidad\") AS promedio_productos\nFROM \"{table_name}\";" | |
| }, | |
| { | |
| "pregunta": "Valor máximo de una venta registrada", | |
| "query": "SELECT MAX(\"Neto\") AS venta_maxima\nFROM \"{table_name}\";" | |
| } | |
| ] | |
| }, | |
| "PRODUCTOS": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para el nombre del cliente usar SIEMPRE 'Razon Social'", | |
| "Para un mes específico usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para cantidades usar SUM(\"Cantidad\"), para dinero usar SUM(\"Neto\")", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Ordenar DESC para 'más/mayor', ASC para 'menos/menor'", | |
| "Usar LIKE para búsquedas de producto", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por la columna adecuada cuando se use una función de agregación", | |
| "Si se compara un producto específico, usar comillas simples en el valor del WHERE" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "Top 10 productos más vendidos", | |
| "query": "SELECT \"Descripcion\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY total_vendido DESC\nLIMIT 10;" | |
| }, | |
| { | |
| "pregunta": "Producto con mayor valor neto", | |
| "query": "SELECT \"Descripcion\", SUM(\"Neto\") AS valor_total\nFROM \"{table_name}\"\nWHERE \"Descripcion\" IS NOT NULL\nGROUP BY \"Descripcion\"\nORDER BY valor_total DESC\nLIMIT 1;" | |
| }, | |
| { | |
| "pregunta": "¿En qué ciudad es más comprado el producto Queso Gouda Importado Chileno Colun?", | |
| "query": "SELECT \"Descripcion\", \"Ciudad\", SUM(\"Cantidad\") AS total_vendido\nFROM \"{table_name}\"\nWHERE \"Descripcion\" LIKE '%Queso Gouda%' AND \"Cliente\" IS NOT NULL\nGROUP BY \"Ciudad\"\nORDER BY total_vendido DESC\nLIMIT 1;" | |
| } | |
| ] | |
| }, | |
| "CLIENTES_CERO_TIEMPO": { | |
| "rules": [ | |
| "Usar siempre nombres exactos de columnas", | |
| "Usar solo las columnas listadas", | |
| "Prohibido inventar columnas", | |
| "Para el nombre del cliente usar SIEMPRE 'Razon Social'", | |
| "Siempre excluir valores nulos con IS NOT NULL en las columnas usadas", | |
| "Un cliente cero es aquel que NO tiene compras en las últimas 4 semanas", | |
| "Para filtrar por mes usar: strftime('%m', \"Fecha\") = 'MM'", | |
| "Para filtrar por trimestre usar BETWEEN con las fechas correspondientes", | |
| "Contestar siempre en el idioma de la pregunta", | |
| "No usar acentos en la query", | |
| "Agrupar siempre por la columna adecuada cuando se use una función de agregación" | |
| ], | |
| "examples": [ | |
| { | |
| "pregunta": "¿Cuántos clientes cero tuvimos en enero?", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") = '01'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-01-31', '-27 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Dame el total de clientes cero en febrero", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") = '02'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-02-28', '-27 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Clientes cero correspondientes a abril", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") = '04'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-04-30', '-27 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Clientes cero durante el primer trimestre", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") BETWEEN '01' AND '03'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-03-31', '-27 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Dame la cantidad de clientes cero en el segundo trimestre", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") BETWEEN '04' AND '06'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-06-30', '-27 day')\n);" | |
| }, | |
| { | |
| "pregunta": "Número de clientes cero del tercer trimestre", | |
| "query": "SELECT COUNT(DISTINCT \"Razon Social\") AS clientes_cero\nFROM \"{table_name}\"\nWHERE \"Razon Social\" IS NOT NULL\nAND strftime('%m', \"Fecha\") BETWEEN '07' AND '09'\nAND \"Razon Social\" NOT IN (\n SELECT DISTINCT \"Razon Social\"\n FROM \"{table_name}\"\n WHERE DATE(\"Fecha\") > DATE('2025-09-30', '-27 day')\n);" | |
| } | |
| ] | |
| } | |
| } |