Si tengo código por ejemplo
SELECT DISTINCT
table1.column2, table2.column3, table2.column4
FROM
table1
JOIN
table2 ON table1.column = table2.column
WHERE
table1.column1 IN ('Value1', 'Value2')
Esto devolverá dos filas de los mismos datos, excepto que cada una tendrá un valor diferente para una columna específica. ¿Cómo puedo traer el único valor y solo hacer que resulte en una columna?
Por ejemplo, actualmente resultaría en algo como esto:
column1 column2 column3
Value1 Value2 Value3
Value1 Value2 Value5
Básicamente crea dos filas porque en la columna 3, los valores son diferentes, ¿hay alguna manera de que pueda traer ese valor 5 y hacer una columna separada para él en la primera fila?
¿Esto implicaría pivotar o cómo podría hacerlo?
¡Gracias por cualquier ayuda!
3 respuestas
Como la columna 3 solo tiene un valor de 2, MIN () y MAX () le proporcionarán tanto el valor
SELECT table1.column1, table2.column2, MIN(table2.column3) , MAX(table2.column3)
FROM table1
JOIN table2
ON table1.column = table2.column
WHERE table1.column1 IN ('Value1', 'Value2')
GROUP BY table1.column2, table2.column3
Puede agregar la columna según lo que desee. podría ser: MAX
, MIN
, SUM
, AVG
, etc.
SELECT table1.column1, table1.column2, MAX(table2.column3) AS column3
FROM table1
INNER JOIN table2
ON table1.column = table2.column
WHERE table1.column1 IN ('Value1', 'Value2')
GROUP BY table1.column1, table1.column2
LAG()
podría obtener la fila justo antes de la fila actual. Entonces el guión es algo como esto:
select * from(
SELECT DISTINCT table1.column2, table2.column3, table2.column4,lag(column4) over (order by table1.column2,table2.column3,table2.column4) l
FROM table1
JOIN
table2 on
table1.column = table2.column
WHERE table1.column1 IN ('Value1', 'Value2')
)t where t.l is not null
Preguntas relacionadas
Nuevas preguntas
sql
El lenguaje de consulta estructurado (SQL) es un lenguaje para consultar bases de datos. Las preguntas deben incluir ejemplos de código, estructura de tabla, datos de muestra y una etiqueta para la implementación de DBMS (por ejemplo, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, etc.) que se utiliza. Si su pregunta se relaciona únicamente con un DBMS específico (usa extensiones / características específicas), use la etiqueta de ese DBMS en su lugar. Las respuestas a las preguntas etiquetadas con SQL deben usar SQL estándar ISO / IEC.