QUERY 1:выберите записи, имеющие максимальное количество поля
SELECT MaxTable.Customer,
MaxTable.Product,
Count(MaxTable.Product) AS CountOfProduct
FROM MaxTable
GROUP BY MaxTable.Customer, MaxTable.Product
Это создаст производную таблицу, и я хочу, чтобы назвать это Product_count_query
QUERY 2:
SELECT Product_count_query.Customer,
Max(Product_count_query.CountOfProduct) AS MaxOfCountOfProduct
FROM Product_count_query
GROUP BY Product_count_query.Customer;
Это будет создать производную таблицу, и я хочу назвать ее max_customer_count
QUERY 3:
SELECT Product_count_query.Customer,
Product_count_query.Product,
Product_count_query.CountOfProduct
FROM Max_Customer_Count
INNER JOIN Product_count_query ON
(Max_Customer_Count.MaxOfCountOfProduct = Product_count_query.CountOfProduct) AND
(Max_Customer_Count.Customer = Product_count_query.Customer);
Я хочу объединить эти три запроса в одном, чтобы получить результаты, как этот
Customer Name Products with max number
Мой образец таблицы
Customer Product
James Keyboard
James Monitor
James Keyboard
Выходной таблица будет (если Джеймс купил 2 клавиатуры и 1 монитор)
Customer Product Countof продукт James Keyboard 2
Если в количестве купленных продуктов есть галстук, то как название продукта, так и количество продукта должны быть объединены с помощью разделителя запятой.
Какой 'RDBMS' вы используете –
Это неясно, что вы здесь. Если я правильно читаю ваш вопрос, вы можете получить то, что хотите, с помощью одного запроса, используя COUNT() и предложение GROUP BY. Вы показали образец таблицы; пожалуйста, [edit], чтобы включить вывод, который вы хотите получить из этой таблицы. Пока вы на нем, добавьте тег для конкретной СУБД, которую вы используете, поскольку синтаксис и функциональность могут различаться между ними, и поэтому они имеют отношение к ответам. –
В моей выходной таблице должно быть имя клиента и соответствующее имя продукта с максимальным количеством. Например, Джеймс купил 2 клавиатуры и 1 монитор. Так что результат должен быть –