То, что вы просите, это, по сути, дерево, и гетерогенное. Это не то, что вы можете легко получить из запроса SQL. То, что реляционная алгебра хочет, чтобы вы действительно получили, выглядит примерно так:
country cat price
US 1 2.39
US 1 3.19
US 2 7.49
...
UK 99 2.80
Этот трюк заключается в том, что вы сначала заказываете по стране, по категории, по цене в последнюю Когда вы читаете данные, вы отслеживаете текущее значение каждого столбца. После изменения cat
пришло время напечатать новый заголовок «Категория ...»; после изменения country
пришло время напечатать новый заголовок «Страна ...».
Итак, запрос будет выглядеть примерно так:
select country, cat, price -- and whatever else
from tbl_products
where ... -- add any limiting clauses, or omit
order by country, cat, price;
Надеюсь, это поможет.