Wyobraźmy mam tabeli jak poniżej:Jak liczyć unikalne rekordy i uzyskać liczbę tych unikalnych w tabeli przy użyciu SQL?
id: Produkt: shop_id
1: Koszykówka: 41
2: Piłka nożna: 41
3: Rocket: 45
4: Samochód: 86
5: Samolot: 86
Oto przykład dużego centrum internetowego, w którym znajdują się sklepy sprzedające jeden klient, dzięki czemu klient może wybrać więcej produktów z każdego sklepu i kupić go w jednym koszyku.
Jednak nie jestem pewien, czy istnieje jakakolwiek składnia SQL, która pozwala mi po prostu uzyskać unikalne parametry shop_ids i łączną liczbę produktów tych sklepów w koszyku klienta. Więc chciałbym dostać coś takiego:
Shop 41 ma 2 produkty
Sklep 45 jeden produkt
Shop 86 dwa Produkt
mogę zrobić, aby zgarnąć zapytań SQL poprzez tabelę, aby jakiś ['shop_id'] ['number_of_products'] zmienna tablicowa, która przechowałaby wszystkie produkty 'shop_ids, a następnie "unikatowe" - zwiększ i policz, ile razy musiałam wyciąć jeszcze jeden shop_id, aby pozostał trochę, ale to wydaje się być dużo bezużytecznych skryptów.
Jeśli masz dobry pomysł, proszę, daj mi znać.
(1) po Count oznacza, który parametr po SELECT będzie się liczył? – Skuta
Nie, (1) nie jest odniesieniem do żadnej kolumny, jest to tylko wartość całkowita 1. Bardziej typowe jest używanie COUNT (*) lub COUNT (nazwa kolumny). Glomek używa COUNT (1) jako stałej wartości całkowitej, ponieważ niektórzy ludzie uważają, że jest to szybsze niż odwoływanie się do kolumny. –
Optymalizator * powinien * dbać o to, aby liczba (*) zajmowała tyle samo czasu co liczba (1). Myślę, że niektórzy z optymistów tego nie robią. – yfeldblum