Как выбрать записи из таблицы Sqlite частично сгруппированы? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть такой стол. И я хочу выбрать Fruits, сгруппированные вместе на основе group_id, но не Vegetables и Nuts. Для Vegetable и Nuts я хочу их всех.

  group_id  name                type
    -----------------------------------
    1        Green Apple          Fruit 
    1        Red Apple            Fruit
    1        Blue Apple           Fruit
    2        Green Peas           Vegetable
    2        Snow Peas            Vegetable
    2        Another Pea          Vegetable
    3        Ground Nut           Nuts
    3        Peanut               Nuts
    4        Carrot               Vegetable

Вот как я пытался прямо сейчас. Это хорошо работает, но я хочу знать, есть ли более простой подход.

select * from Grocessaries GROUP BY group_id HAVING type in ('Fruit', 'Drinks')     

UNION all

select * from Grocessaries where type in ('Vegetable', 'Nuts') 

В принципе, я хочу, чтобы результат был примерно таким (сгруппированные фрукты и все овощи и орехи)

group_id  name                type
        -----------------------------------
        1        Green Apple          Fruit 
        2        Green Peas           Vegetable
        2        Snow Peas            Vegetable
        2        Another Pea          Vegetable
        3        Ground Nut           Nuts
        3        Peanut               Nuts
        4        Carrot               Vegetable

1 Ответ

0 голосов
/ 15 ноября 2018

Поскольку вы обрабатываете фрукты (и напитки) специально в пользовательском интерфейсе, фактическое имя, возвращаемое для них, не так важно, поэтому вы можете сделать

SELECT group_id,
  CASE type
    WHEN 'Fruits' THEN 'Fruits' -- or whatever you want to display
    WHEN 'Drinks' THEN 'Drinks'
    ELSE name
  END NameGrouped,
  type
FROM Grocessaries
GROUP BY group_id, NameGrouped, type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...