@ALexLancer

Как в SQL сделать выборку 3 столбцов?

Как в SQL из такой таблицы
5f2fc192796f6694804096.jpeg
получить такую выборку
5f2fc1aa15b92262854391.jpeg

Нужно брать не все user_id из таблицы, а из заданного массива идентификаторов
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 2
Alexandre888
@Alexandre888
Javascript-разработчик
выбрать дубликаты из таблицы:
SELECT min(user_id), gender, age
FROM table
GROUP BY gender, age
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
Это называется PIVOT. Делал недавно.
Для вас:
DECLARE @UserInfo TABLE ( user_id INT, meta_key VARCHAR(100), meta_value VARCHAR(100) )
INSERT @UserInfo VALUES ( 1, 'gender', 'male' ),
( 1, 'age', '21' ),
( 2, 'gender', 'female' ),
( 2, 'age', '23' ),
( 3, 'gender', 'genderqueer' ),
( 4, 'age', '25' ),
( 4, 'location', 'toster' ),
( 5, 'gender', 'male' ),
( 5, 'age', '27' ),
( 6, 'gender', 'female' ),
( 6, 'age', '29' )

SELECT user_id, gender, age, location
  FROM ( SELECT * FROM @UserInfo ) AS UI
  PIVOT ( MAX( meta_value ) FOR meta_key IN (gender, age, location )) AS PT
  WHERE user_id BETWEEN 2 AND 5
  ORDER BY user_id

Результат:
user_id	gender	age	location
2	female	23	NULL
3	genderqueer	NULL	NULL
4	NULL	25	toster
5	male	27	NULL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы