我對SQL很陌生(當前使用PostgreSQL,但對任何SQL的知識感興趣),並試圖找出我認爲應該相對直接的東西。PostgreSQL:客戶的首選產品和第二最受歡迎的產品
我有一張表,每個客戶交易包含一行,對於每筆交易,我知道客戶購買了什麼。我有興趣找出哪些產品是每個客戶的首選選擇,然後是他們的第二個到最優選的選擇(並且最終,總的來說,當首選選項不可用時,什麼是首選的第二選擇)。
下面是一個實物模型的數據可能是什麼樣子:
+---------------------+-----------------+
| Customer_id | Product bought |
+---------------------+-----------------+
| 1 | DVD |
+- -+- -+
| 1 | DVD |
+- -+- -+
| 1 | Blu-ray |
+- -+- -+
| 1 | DVD |
+- -+- -+
| 2 | DVD |
+- -+- -+
| 2 | DVD |
成功的結果會是這樣的:
+---------------------+--------------------------------+
| Customer_id | Preferred #1 | Preferred #2 |
+---------------------+--------------------------------+
| 1 | DVD | Blu-ray |
+- -+- -+
| 2 | DVD | $NULL$ |
(正如前面提到的,最後的結果(最有可能在Python/R中完成,而不是在SQL中完成,將會看到一般性基礎爲「如果首選#1是DVD,則優先#2是藍光」,「如果首選#1是藍光,則首選#2是三明治「...等等)
個乾杯
真棒,感謝這幫助了很多,做一切我想做的事(學到了很多東西太)。乾杯。 – Morridini