2016-04-04 1 views
0

Я пытаюсь запустить небольшую последовательность, в которой компилятор будет перечислять идентификаторы ордеров, которые больше или равны 600. В то же время я подсчитываю числа, которые имеют каждый order_id.MySQL: инструкции COUNT: Почему он отображает только один идентификатор заказа?

Когда я запускаю мой код, я только получить один ORDER_ID, в то время как у меня есть много, что больше, чем 600. '

Примечание: Я не получают каких-либо ошибок.

Последовательность:

/*Exercise 1*/  
SELECT orders.order_id as 'Order ID', 
     COUNT(DISTINCT order_details.item_id) as 'Total Items' 
FROM order_details 
JOIN orders on order_details.order_id = orders.order_id 
WHERE orders.order_id >= 600 
ORDER BY orders.order_id ASC; 

Я на самом деле попытка попробовать без DISTINCT и имели один и тот же результат. Любая идея, что я делаю неправильно?

* Удалено другим кодом, поскольку он не был необходим.

Дополнительный вопрос: Можно ли использовать счетчик как средство для заказа? Как так:

SELECT orders.order_id as 'Order ID', 
     COUNT(order_details.item_id) as 'Total Items' 
FROM order_details 
JOIN orders on order_details.order_id = orders.order_id 
WHERE orders.order_id >= 600 
GROUP BY orders.order_id 
ORDER COUNT(order_details.item_id) ASC; 

ответ

2

COUNT является функцией агрегирование было бы объединить все строки в одну строку, если вы установите пункт GROUP BY который будет группа по Что вы хотите, состоит в следующем:

/*Exercise 1*/  
SELECT orders.order_id as 'Order ID', 
     COUNT(order_details.item_id) as 'Total Items' 
FROM order_details 
JOIN orders on order_details.order_id = orders.order_id 
WHERE orders.order_id >= 600 
GROUP BY orders.order_id 
ORDER BY orders.order_id ASC; 

Отличительные элементы были бы необходимы только в том случае, если на одном элементе item_id есть дубликаты, я предполагаю, что нет, поэтому я удалил его.

Некоторые полезные ссылки: http://www.w3schools.com/sql/sql_func_count.asp http://www.w3schools.com/sql/sql_groupby.asp

Редактировать, ответ на второй вопрос:

Да это, безусловно, возможно, и пример вы дали правильный и должен дать желаемый результат

+0

Вау! Спасибо за быстрый ответ, и я полностью понимаю. Я на самом деле просто посещал ссылку COUNT в школах w3, и я попробовал симуляторы найти, что вы на это 100% верны. Спасибо за группу по ссылке. Кроме того, спасибо, что поместили его в пример с моей последовательностью кода. Это очень ценно! :) – Sierra

+0

Наверное, профессиональная ревность, но SO, похоже, не очень нравится w3. – Strawberry

+0

Нет проблем ^^ всегда хорошо, чтобы быть в состоянии помочь :) Если у вас возникнут дополнительные вопросы, я буду рад помочь. если у вас больше нет вопросов по этому поводу, не забудьте отметить ответ, если вы это сделаете, то спросите у ^^ – Jester

Смежные вопросы