Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Sql count, Подсчет количества категорий
Snnick  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42681
На форуме: 1 год, 4 месяца, 14 дней
Карма:




Всем привет. Не получается написать запрос, который считает количество категорий с товарами цена которых может изменяться от и до.
Например то что нужно:

1 колонка | 2 колонка | 3 колонка

1 | Цена товара от 1 до 100 грн | 5 категорий с товарами от 1 до 100 грн
2 | Цена товара от 101 до 200 грн | 10 категорий с товарами от 101 до 200 грн
3 | Цена товара от 201 до 300 грн | 7 категорий с товарами от 201 до 300 грн
4 | Цена товара от 301 до 400 грн | 8 категорий с товарами от 301 до 400 грн

и так далее...
Перепробовал несколько вариантов с под запросами, но нужного результат получить не могу, считает либо категории, но не выводит стоимость товаров, либо выводит товары, но не считает категории.
Есть две таблицы одна с товарами, вторая с категориями. В таблице с товарами хранится название товара, цена товара, Id категории. В таблице категорий хранится название категории товара которой могут принадлежать несколько товаров.

Подскажите пожалуйста как можно реализовать с помощью SQL такой вывод данных в три колонки, как показано выше.

Это сообщение отредактировал Snnick - 10.04.2017 - 08:02
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5662
Пользователь №: 35718
На форуме: 4 года, 8 месяцев, 7 дней
Карма: 176




Цитата (Snnick @ 10.04.2017 - 07:01)
Перепробовал несколько вариантов с под запросами

показывайте


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2792
Пользователь №: 24406
На форуме: 6 лет, 9 месяцев, 10 дней
Карма: 180




Подсказка:
... GROUP BY CEILING(price / 100)


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Snnick  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42681
На форуме: 1 год, 4 месяца, 14 дней
Карма:




Сейчас у меня работает таким образом:

SELECT COUNT(gc.id) AS count200,
(
SELECT COUNT(gc1.id) FROM goods_categories gc1
JOIN goods g1 ON g1.goodsCategoryId = gc1.id
WHERE g1.price > 0 AND g1.price<= 200) AS count200,
(
SELECT COUNT(gc2.id) FROM goods_categories gc2
JOIN goods g2 ON g2.goodsCategoryId = gc2.id
WHERE g2.price > 200 AND g2.price <= 400) AS count400,
(
SELECT COUNT(gc3.id) FROM goods_categories gc3
JOIN goods g3 ON g3.goodsCategoryId = gc3.id
WHERE g3.price > 200 AND g3.price <= 400) AS count600
FROM goods_categories gc
JOIN goods g ON g.goodsCategoryId =gc.id
WHERE g.price <= 200;

Есть такой запрос с под запросами он считает в одну строчку количество категорий по заданным условиям. Потом мне приходится в массиве задавать переменные с значением например:
$a = 'Цена товара от 0 до 200 грн';
$b = 'Цена товара от 201 до 400 грн';
$c = 'Цена товара от 401 до 600 грн';

И потом в foreach выводить количество категорий, которое соответствует переменным с заданным значением.
А хочется, чтоб сразу в запросе вытягивалась информация:
цена товара от-до | количество категорий
0-200 | 4
200-400 | 6
400-600 | 3
600-800 | 5
и так далее...

Возможно так сделать? И как мне нужно переписать запрос?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1788
Пользователь №: 20757
На форуме: 7 лет, 5 месяцев, 25 дней
Карма: 187




PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Гость_chee  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Я бы много не придумывал, взял бы шаблонный запрос с группировкой, взял бы массив интервалов, для каждого из массива интервалов сгенерировал запрос из шабона, полученные запросы через union склеил и отправил бы в БД.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Snnick  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 26
Пользователь №: 42681
На форуме: 1 год, 4 месяца, 14 дней
Карма:




Спасибо. Это решение помогло:
http://stackoverflow.com/questions/6687534...answer-13186519
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса