Запрос выдал только 10 строк отсортированных полей. ZA это последний код поля [cc] из всего массива. Как вывести все остальные [cc]?
SELECT
ccg.cc, cg.country || ' ' || round((100.0 * cCnt / Cnt),1) || '%' Prc
FROM (
SELECT
cc, COUNT(*) Cnt
FROM
patent_country
GROUP BY cc
) ccg
JOIN (
SELECT
cc, country, COUNT(*) cCnt
FROM
patent_country
GROUP BY cc, country
) cg ON ccg.cc = cg.cc
ORDER BY ccg.cc DESC
LIMIT 10
Результат запроса:
cc Prc
ZA AT 11.5%
ZA AU 11.5%
ZA BR 3.8%
ZA CN 3.8%
ZA DE 11.5%
ZA EP 11.5%
ZA ES 7.7%
ZA IL 7.7%
ZA JP 3.8%
ZA MX 3.8%
Ни как не могу изменить запрос чтобы, для каждой группы [сс] выдать только по 10 строк с убывающими процентами.
Конечно в представленной таблице больше записей, но для примера хватит. Таблица [patent_country] формируется так:
CREATE TABLE [patent_country] (
[id_patent_country] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
[id_patent] INTEGER,
[country] VARCHAR,
[cc] VARCHAR)
INSERT INTO patent_country (id_patent, country, cc)
VALUES (1, 'DE', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (2, 'AU', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (2, 'DE', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (2, 'WO', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (3, 'DE', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (4, 'RU', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (5, 'RU', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (6, 'RU', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (7, 'RU', 'AU');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (8, 'AU', 'WO');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (9, 'CN', 'WO');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (9, 'DE', 'WO');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (9, 'DK', 'WO');
INSERT INTO patent_country (id_patent, country, cc)
VALUES (9, 'EP', 'WO');