Я хранил всю информацию о доставке для клиента в MyTable - CustomerId, ShippingID, ItemID, ShipDate. Отгрузка/отправкаID может содержать один или несколько элементов/идентификаторов товаров. Идентификатор доставки может иметь только один shipdate. Вот пример таблицы -COUNT с DISTINCT
CustomerID, ShippingID, ItemID, ShipDate
C1, A1, I200, today
C1, A1, I88, today
C1, A2, I7, tomorrow
C1, B1, I955, yesterday
C2, B2.....et cetra
Для CUSTOMERID, я хочу, чтобы отобразить различные shippingIDs, количество элементов в shippingID, ShipDate.
Ожидаемый выход -
C1, A1, 2, today
C1, A2, 1, tomorrow
C1, B1, 1, yesterday
...etc
Я попробовал -
select distinct shippingid,
count(*) over() itemid,
orderdate
from mytable
where customerID = 'C1'
Выход -
C1, A1, 4, today
C1, A2, 4, tomorrow
Проблема заключается в том, что он считает все элементы для C1. Я хочу считать только товары в shippingID клиента. Как мне это сделать ?
EDIT - прямо сейчас, я не нуждаюсь в нем для всех клиентов. Только для одного. Так что группа не нужна.
Спасибо.
Совокупные функции нуждаются в группе. – Mihai
@Mihai Не обязательно, 'COUNT (*) OVER()' будет работать просто отлично – Lamak
Замечание о том, как различные работы - http://blog.sqlauthority.com/2007/12/20/sql-server-distinct-keyword -usage-and-common-discussion/ – Steam