Мне нужно создать sql

#sql #syntax #client

#sql #синтаксис #клиент

Вопрос:

**

 SELECT clientName, orderID FROM
Orders INNER JOIN clients ON orders.clientID = clients.clientID;
 

**

Я могу показать каждого клиента и каждый из их заказов. Помогите мне исправить мой синтаксис SQL, чтобы я показывал количество заказов для каждого клиента?

Я также хочу, чтобы мои результаты были упорядочены в алфавитном порядке по имени клиента,

пожалуйста, напишите для меня новый синтаксис SQL!

Комментарии:

1. Подсказка: GROUP BY . COUNT() .

Ответ №1:

ВЫБЕРИТЕ имяклиЕнта, COUNT(*) ИЗ Orders ВНУТРЕННЕЕ ОБЪЕДИНЕНИЕ клиентов В orders.ClientID = clients.ClientID ГРУППА ПО имени КЛИЕНТА ПОРЯДОК ПО ИМЕНИ КЛИЕНТА

Ответ №2:

Вы можете использовать агрегацию:

 select c.clientName, count(*) no_orders
from clients c
inner join orders o on o.clientID = c.clientID
group by c.clientID, c.clientName
 

Примечания:

  • псевдонимы таблиц облегчают чтение и запись запроса
  • добавление идентификатора клиента в group by предложение учитывает возможность того, что разные клиенты могут иметь одно и то же имя
  • в общем, вы хотите избежать идентификаторов регистра верблюда ( ClientName ) и вместо этого использовать регистр змеи ( client_name ): с точки зрения базы данных идентификаторы не чувствительны к регистру (если не указаны в кавычках)

Комментарии:

1. Для чего нужны o и c?

2. И почему это no_orders, даже если я хочу сделать это по порядку?

3. @userman: это псевдонимы таблиц, как объяснено в моем ответе. И no_orders является псевдонимом столбца, который будет обозначать количество заказов .