2013-07-09 2 views
2

Хорошо, усложнив, как это сделать.Нужна помощь с запутанной ошибкой в ​​MySQL Query Issue

У меня есть таблица журнала выставления счетов, которая содержит следующие поля:

+----+---------+--------+--------------+ 
| ID | OrderID | FileID | CollectionID | 
+----+---------+--------+--------------+ 
| 1 |  113 | 3666 |   345 | 
| 2 |  113 | 35354 |   345 | 
| 3 |  113 | 3456 |   345 | 
| 4 |  113 | 7734 |   345 | 
| 5 |  114 |  23 |    | 
| 6 |  115 | 442 |    | 
| 7 |  116 | 115 |    | 
| 8 |  117 | 5141 |   987 | 
| 9 |  117 | 1423 |   987 | 
| 10 |  118 | 213 |    | 
| 11 |  119 | 3666 |   345 | 
| 12 |  119 | 35354 |   345 | 
| 13 |  119 | 3456 |   345 | 
| 14 |  119 | 44142 |   345 | 
| 15 |  120 | 12321 |    | 
| 16 |  121 | 789 |   1113 | 
| 17 |  122 | 78000 |    | 
| 18 |  123 | 9987 |    | 
| 19 |  124 | 7899 |   345 | 
| 20 |  124 |  87 |   345 | 
| 21 |  124 |  78 |   345 | 
+----+---------+--------+--------------+ 

Я пытаюсь получить количество раз коллекция была куплена. В приведенном выше примере коллекция 345 была куплена 3 раза, сбор 987 был куплен один раз, а сбор 1113 был куплен один раз.

Чтобы уточнить этот вопрос, если вы посмотрите идентификаторы 1-4, вы можете увидеть, что кто-то приобрел номер коллекции 345, который включает следующие файлы (3666, 35354, 3456 и 7734), а их номер заказа для этой покупки - 113.

Итак, у нас есть таблица, полная этих, и мне просто нужно знать, сколько раз каждая коллекция была приобретена.

Любые вещи?

Благодарим за помощь!

Craig

+1

Что вы пробовали до сих пор? Посмотрите 'GROUP BY' и' COUNT (DISTINCT ...) '. http://dev.mysql.com/doc/refman/5.0/en/select.html – Tom

+0

Отключить тему комментария: я нашел этот ресурс отлично подходит для таблиц форматирования http://www.sensefulsolutions.com/2010/10/ format-text-as-table.html – Marcus

+0

@Marcus Мне было интересно, как вы довольно быстро отформатировали эту таблицу;) –

ответ

4

Что-то, как это должно сделать это. Ключ distinct OrderID

select CollectionID, count(distinct OrderID) 
    from myTable 
group by CollectionID 

sqlfiddle, который показывает результат

+0

Вы правы. Я пропустил четкое требование OrderID. – criticalfix

+0

Это, кажется, работает плавно. Большое спасибо за вашу помощь Андреас! – CRAIG

+0

выберите MediaBoxID, count (отдельный OrderID) из группы ptpl_billing_log MediaBoxID – CRAIG

0

да .. вы можете использовать следующий запрос: SELECT * column_name * COUNT (*) FROM table_name * * WHERE CollectionID = '345';

Надеется, что это помогает .. Кроме того, хороший ресурсом для любых запросов Mysql является «http://dev.mysql.com/doc/#manual»