¿Cómo combinar unos pocos registro de la fila en MySQL?

WILLIAM :

Estoy tratando de combinar unas filas se combinan y salen como 1 fila. Aquí está mi ejemplo y mi salida esperada. He tratado GROUP_CONCAT y poner si / caja condición en la consulta pero parece de alguna manera no puedo salida como yo esperaba. Gracias por adelantado.

Data:
id | Type   | Name       |Supermarket
1    Fruit    Apple       East
2    Fruit    Orange      West
3    Fruit    Pear        Central

Expected Output:
Type   |East    |West      |Central
Fruit   Apple    Orange     Pear
Caius Jard:

Las preguntas duplicadas que miraba para arriba para esto no tienen respuestas muy claras en mi humilde opinión, por lo que voy a escribir uno:

Lo primero que necesitamos para difundir los datos que nos interesa a través de 3 columnas:

SELECT
  type,
  CASE WHEN supermarket = 'east' THEN name END as east,
  CASE WHEN supermarket = 'west' THEN name END as west,
  CASE WHEN supermarket = 'central' THEN name END as central
FROM t

Ejecutar eso y verá la difusión de datos a 3 filas y 3 columnas, en su mayoría nulos. Ahora necesitamos para deshacerse de los nulos. Si utilizamos MAX () en cada columna con nulos vamos a ocultar todo excepto el celular que tiene un valor (máx siempre escogerá un valor superior a cero)

SELECT
  type,
  MAX(CASE WHEN supermarket = 'east' THEN name END) as east,
  MAX(CASE WHEN supermarket = 'west' THEN name END) as west,
  MAX(CASE WHEN supermarket = 'central' THEN name END) as central
FROM t
GROUP BY type

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=395791&siteId=1
Recomendado
Clasificación