Agrupa los productos vendidos por fecha
Escribe una solución para encontrar para cada fecha el número de productos diferentes vendidos y sus nombres. Los nombres de los productos vendidos en cada fecha deben ordenarse lexicográficamente. Regresa el resultado ordenado por `sell_date`.
Tabla Activities:
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| sell_date | date |
| product | varchar |
+-------------+---------+
- No hay llave primaria (columna con valores únicos) para esta tabla. Puede contener duplicados.
- Cada fila de esta tabla contiene el nombre del producto y la fecha en que fue vendido en un mercado.
El formato del resultado se muestra en el siguiente ejemplo.
Ejemplo 1:
Entrada:
Tabla Activities:
+------------+------------+
| sell_date | product |
+------------+------------+
| 2020-05-30 | Headphone |
| 2020-06-01 | Pencil |
| 2020-06-02 | Mask |
| 2020-05-30 | Basketball |
| 2020-06-01 | Bible |
| 2020-06-02 | Mask |
| 2020-05-30 | T-Shirt |
+------------+------------+
Salida:
+------------+----------+------------------------------+
| sell_date | num_sold | products |
+------------+----------+------------------------------+
| 2020-05-30 | 3 | Basketball,Headphone,T-shirt |
| 2020-06-01 | 2 | Bible,Pencil |
| 2020-06-02 | 1 | Mask |
+------------+----------+------------------------------+
Explicación:
- Para el 2020-05-30, Los productos vendidos fueron (Headphone, Basketball, T-shirt), los ordenamos lexicográficamente y los separamos con una coma.
- Para el 2020-06-01, Los productos vendidos fueron (Pencil, Bible), los ordenamos lexicográficamente y los separamos con una coma.
- Para el 2020-06-02, El producto vendido fue (Mask), solo lo regresamos.
Solución
SELECT
sell_date,
COUNT(distinct product) AS num_sold,
GROUP_CONCAT(distinct product ORDER BY product) AS products
FROM activities GROUP BY sell_date;