/ / Як вибрати всі атрибути (*) з окремими значеннями в певному стовпчику? - sql

Як вибрати всі атрибути (*) з окремими значеннями в певному стовпчику? - sql

Ось посилання на базу даних w3school для учнів:

База даних W3School

Якщо ми виконаємо наступний запит:

SELECT DISTINCT city FROM Customers

він повертає нам список різних міських атрибутів із таблиці.

Що робити, якщо ми хочемо отримати всі рядки, як ми отримуємо від SELECT * FROM Customers запит, з унікальним значенням для атрибута City в кожному рядку.

Відповіді:

0 для відповіді № 1

ПОЗНАЧЕННЯ коли використовується з кількома стовпцями, застосовується для всіх стовпців разом. Отже, вважається набір значень усіх стовпчиків, а не тільки один стовпець.

Якщо ви хочете мати різні значення, то об'єднати всі стовпці, що зробить його виразним.

Або ви могли б групувати рядки за допомогою GROUP BY.


0 для відповіді № 2

Я думаю, ви хочете щось на зразок цього:
(змінити PK поле для вашого Customers Таблиця первинного ключа або індекс як Id)

У SQL Server

SELECT
*
FROM (
SELECT
*, ROW_NUMBER() OVER (PARTITION BY City ORDER BY PK) rn
FROM
Customers ) Dt
WHERE
(rn = 1)

В MySQL

SELECT
*
FORM (
SELECT
a.City, a.PK, count(*) as rn
FROM
Customers a
JOIN
Customers b ON a.City = b.City AND a.PK >= b.PK
GROUP BY a.City, a.PK ) As DT
WHERE (rn = 1)

Цей запит - я сподіваюсь - поверне ваші міста чітко, а також покаже інші стовпці.


0 для відповіді № 3

Вам потрібно вибрати всі значення з customers стіл, де city є унікальним. Отже, логічно, я прийшов з таким запитом:

SELECT * FROM `customers` WHERE `city` in (SELECT DISTINCT `city` FROM `customers`)

0 для відповіді № 4

Ви можете використовувати пункт GROUP BY для отримання різних значень у певному стовпці. Розглянемо наступну таблицю - "контакт":

+ --------- + ------ + --------- + | id | ім'я |місто | + --------- + ------ + --------- + | 1 | ABC | Ченнаї | + --------- + ------ + --------- + | 2 | PQR | Ченнаї | + --------- + ------ + --------- + | 3 | XYZ | Мумбаї | + --------- + ------ + --------- +

Щоб вибрати всі стовпці з різними значеннями в атрибуті City, використовуйте такий запит:

SELECT * Із контакту GROUP BY місто;

Це дасть вам вихід таким чином:

+ --------- + ------ + --------- + | id | ім'я |місто | + --------- + ------ + --------- + | 1 | ABC | Ченнаї | + --------- + ------ + --------- + | 3 | XYZ | Мумбаї | + --------- + ------ + --------- +