Подсчет повторяющихся элементов для запросов данных Sql - PullRequest
0 голосов
/ 28 апреля 2010

У меня есть 2 таблицы: таблица заказов и таблица заказов. Я написал внутреннее соединение:

  SELECT Order.id
  FROM Order
  INNER JOIN orderDetails 
   ON Order.id=orderDetails.id

Я получил вывод как:

   id
  100
  100
  100
  101
  101

Исходя из приведенных выше данных, я хочу, чтобы счет каждой записи выводился как

  id  count
  100  3
  101  2

Как бы я это сделал?

Ответы [ 4 ]

2 голосов
/ 28 апреля 2010
Select OrderId , Count(*) as [Count]
from OrderDetials
Group By OrderId 

OrderId будет столбцом первичного ключа, ссылающимся на столбец Order.Id таблицы заказов

Если ваш orderDetails.id ссылается на столбец Order.id Это будет запрос.

Select id , Count(*) as [Count]
from OrderDetials
Group By id
0 голосов
/ 28 апреля 2010

Использовать группу по

SELECT Order.id, count(*) as Count
FROM Order
INNER JOIN orderDetails 
ON Order.id=orderDetails.id Group by Order.id
0 голосов
/ 28 апреля 2010

Вам необходимо использовать агрегат COUNT и предложение GROUP BY.

SELECT Order.id, COUNT(DISTINCT orderDetails.id)
FROM Order 
INNER JOIN orderDetails ON Order.id=orderDetails.orderId 
GROUP BY Order.id

Выглядит так, как будто вам нужно немного изменить условие соединения.

0 голосов
/ 28 апреля 2010
SELECT o.id, COUNT(*)
  FROM Order         o
  JOIN orderDetails  od  ON o.id=od.id
 GROUP BY o.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...