如何利用这个SQL进行删除这些公司 出现次数-1的数量,只剩下一家这些公司SELECT company_name, COUNT(*) AS count FROM ( SELECT company_name, DENSE_RANK() OVER (ORDER BY company_name) AS company_rank FROM your_table_name ) AS subquery GROUP BY company_name HAVING COUNT(*) > 1;
时间: 2024-03-17 20:46:42 浏览: 157
PostgreSQL SELECT 语句
要删除出现次数-1的数量,可以使用以下SQL语句:
```
DELETE FROM your_table_name
WHERE company_name IN (
SELECT company_name
FROM (
SELECT company_name, COUNT(*) AS count
FROM (
SELECT company_name, DENSE_RANK() OVER (ORDER BY company_name) AS company_rank
FROM your_table_name
) AS subquery
GROUP BY company_name
) AS subquery2
WHERE count = 1
);
```
这个语句会先将表中所有公司按照名称进行排序,并计算它们的排名。然后,将它们分组并计算每个公司出现的次数。最后,将出现次数为1的公司名称提取出来,并从原表中删除这些公司的所有记录。这样就可以保留只出现一次的公司,而将其他公司删除。
阅读全文