Ваш пример выходных данных не может быть получен по запросу в вашем посте (вы группируете только по одному столбцу, а результаты основаны на группировке по двум столбцам; для каждого запроса должна быть только одна строка), и нет примеров данных для тестирования, так что исправляя это, я думаю, что это будет делать то, что вы хотите (требуется Sqlite 3.25 или новее):
SELECT a.job AS Job
, a.site AS Site
, count(b.job) AS Headcount
, sum(count(b.job)) OVER (PARTITION BY a.job) AS Total
FROM tble_1 AS a
LEFT JOIN tble_2 AS b ON a.job = b.job AND a.site = b.site
GROUP BY a.job, a.site;
Учитывая следующие данные образца:
CREATE TABLE tble_1(job text, site text);
INSERT INTO tble_1 VALUES('Doctor','US');
INSERT INTO tble_1 VALUES('Doctor','Japan');
INSERT INTO tble_1 VALUES('Doctor','Germany');
INSERT INTO tble_1 VALUES('Artist','Mexico');
INSERT INTO tble_1 VALUES('Actor','Russia');
INSERT INTO tble_1 VALUES('Actor','India');
INSERT INTO tble_1 VALUES('Actor','Mexico');
CREATE TABLE tble_2(job text, site text);
INSERT INTO tble_2 VALUES('Doctor','US');
INSERT INTO tble_2 VALUES('Doctor','Japan');
INSERT INTO tble_2 VALUES('Doctor','Germany');
INSERT INTO tble_2 VALUES('Artist','Mexico');
INSERT INTO tble_2 VALUES('Actor','Russia');
INSERT INTO tble_2 VALUES('Actor','India');
INSERT INTO tble_2 VALUES('Doctor','Germany');
CREATE INDEX tble_1_idx ON tble_1(job, site);
CREATE INDEX tble_2_idx ON tble_2(job, site);
это производит:
Job Site Headcount Total
---------- ---------- ---------- ----------
Actor India 1 2
Actor Mexico 0 2
Actor Russia 1 2
Artist Mexico 1 1
Doctor Germany 2 4
Doctor Japan 1 4
Doctor US 1 4