MySql получает количество каждого типа элемента в облаке - PullRequest
1 голос
/ 03 февраля 2009

У меня есть 2 таблицы со следующей структурой ..

category
{
  sub_cat_id - numeric
  sub_cat_name -  varchar
  main_cat_id - varchar (2 characters)
  main_cat_name -  varchar
}

products
{
  pid - autoincrement
  pname - varchar
  category (Will be either sub_cat_id or main_cat_id)
}

Таблица продуктов

pid       pname       category
1         mobile      EL
2         shoes       1
3         shirt       1 
4         TV          EL
5         mp3 player  EL

Я хочу получить количество каждой категории в таблице продуктов, чтобы мой запрос возвращал 2 для категории 1 и 3 для категории EL

Может ли кто-нибудь помочь мне с этим ??

Ответы [ 2 ]

6 голосов
/ 03 февраля 2009

Это должен быть ваш запрос:

SELECT category, COUNT(*) FROM products GROUP BY category;

Я бы порекомендовал подумать о дизайне таблицы ваших категорий, так как это может вызвать у вас трудности в будущем.

0 голосов
/ 05 декабря 2013

Следите за нулевыми значениями:

mysql> select resourcetype,count(resourcetype) as num from resources group by resourcetype     order by num desc;
+-------------------+-------+
| resourcetype      | num   |
+-------------------+-------+
| COLLECTION        | 20036 |
| HIDDEN_RESOURCE   | 17443 |
| DEFAULT_CALENDAR  | 12528 |
| CALSCHED_INBOX    | 12528 |
| CALSCHED_OUTBOX   | 12528 |
| CAL_RESOURCE      | 12367 |
| SHARING_OUTBOX    |  2465 |
| SHARING_INBOX     |  2452 |
| CALENDAR          |     8 |
| HIDDEN_COLLECTION |     4 |
| NULL              |     0 |
+-------------------+-------+

mysql> select count(*) from resources where resourcetype is null;
+----------+
| count(*) |
+----------+
|       56 |
+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...