Mysql
MySQL 錯誤 ‘with base as’ 子查詢和 GROUP BY
我不知道公司為什麼使用這麼舊的 MySQL 版本,但它是:5.6。
我們有一些重複的子域。例如,給定一個子域,
fastelvis
我們得到 6 個結果,但應該只有一個,即 ID 為 6 最低的那個。此查詢正常工作,並向我顯示了重複的子域:select subdomain, ID from clients where subdomain in (select subdomain from clients group by subdomain having count(*) > 1 ) order by subdomain, FSID ;
這很好用。
ID 是一個整數欄位,自動遞增。
但我需要找到任何一組重複項的最低 ID。也就是說,如果
fastelvis
ID 為 11、27、94、149、2398 和 9322,那麼我只需找到11
.我認為這會讓我得到我想要的:
With base as ( select subdomain, ID from clients where subdomain in (select subdomain from clients group by subdomain having count(*) > 1 ) order by subdomain, ID) SELECT subdomain, MIN(ID) first_subdomain_ID FROM base GROUP BY subdomain
我一直在看這個 20 分鐘,我沒有看到任何語法錯誤,但我得到:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'base as ( select subdomain,
我想知道,也許這種語法在這個版本的 MySQL 中不起作用?
有人看到語法錯誤嗎?
select subdomain, MIN(id) AS min_id from clients group by subdomain having count(*) > 1