The request you requested is part of the solution. Use this query as an inline view to identify keywords that contain more than one landing page. Attach the result of this query to the source table.
SELECT t.keyword
, t.landing_page
FROM (
SELECT r.keyword
FROM search_data r
GROUP BY r.keyword
HAVING COUNT(DISTINCT r.landing_page) > 1
) s
JOIN search_data t
ON t.keyword = s.keyword
GROUP BY t.keyword, t.landing_page
ORDER BY t.keyword, t.landing_page
. , . , , _:
SELECT DISTINCT t.keyword, t.landing_page
FROM search_data t
WHERE EXISTS ( SELECT 1
FROM search_data r
WHERE r.keyword = t.keyword
AND NOT ( r.landing_page <=> t.landing_page )
)
ORDER BY t.keyword, t.landing_page
Followup
:
CREATE TABLE search_data (keyword VARCHAR(10), landing_page VARCHAR(80))
;
CREATE INDEX search_data_IX1 ON search_data (keyword, landing_page)
;
INSERT INTO search_data (keyword, landing_page) VALUES
('orange','https://www.example.co.uk/')
,('apple','https://www.example.co.uk/')
,('pear','https://www.example.co.uk/')
,('apple','https://www.example.co.uk/')
,('apple','https://www.example.co.uk/landing-page')
;
EXPLAIN 1
EXPLAIN
SELECT t.keyword
, t.landing_page
FROM (
SELECT r.keyword
FROM search_data r
GROUP BY r.keyword
HAVING COUNT(DISTINCT r.landing_page) > 1
) s
JOIN search_data t
ON t.keyword = s.keyword
GROUP BY t.keyword, t.landing_page
ORDER BY t.keyword, t.landing_page
1
SELECT t.keyword
, t.landing_page
FROM (
SELECT r.keyword
FROM search_data r
GROUP BY r.keyword
HAVING COUNT(DISTINCT r.landing_page) > 1
) s
JOIN search_data t
ON t.keyword = s.keyword
GROUP BY t.keyword, t.landing_page
ORDER BY t.keyword, t.landing_page
2
EXPLAIN
SELECT DISTINCT t.keyword, t.landing_page
FROM search_data t
WHERE EXISTS ( SELECT 1
FROM search_data r
WHERE r.keyword = t.keyword
AND NOT ( r.landing_page <=> t.landing_page )
)
ORDER BY t.keyword, t.landing_page
2
SELECT DISTINCT t.keyword, t.landing_page
FROM search_data t
WHERE EXISTS ( SELECT 1
FROM search_data r
WHERE r.keyword = t.keyword
AND NOT ( r.landing_page <=> t.landing_page )
)
ORDER BY t.keyword, t.landing_page