如何计算和选择多列中count = 1的记录

时间:2017-03-06 01:59:38

标签: sql

嗨,谢谢你。

尝试简化两个SQL语句但没有太大成功。

  1. 计算表中的唯一记录(通过唯一,我的意思是整个记录只在表中找到一次)
  2. 在表格中选择唯一记录(通过唯一,我的意思是整个记录只在表格中找到一次)
  3. 由于该表有30列,是否有一些方法可以简单地指定表中的所有列,而不必在SQL中单独包含所有列?

    我得到了这个工作,你拼出每个列名称(其中'col n name'指的是最后一列),但它不是理想的,因为有这么多的列......

    SELECT col 1 name, col 2 name, col 3 name, …, col n name FROM table name 
    GROUP BY col 1 name, col 2 name, col 3 name, …, col n name
    Having Count(*)=1 
    

    由于 多伊茨

1 个答案:

答案 0 :(得分:0)

create view tab_view1 as select DISTINCT * from tab; 
select COUNT(*) from tab_view1; -- first desired result
select * from tab_view1; -- second desired result

首次出现是独一无二的,第二次出现不是。

如果要排除任何重复的记录:

create view tab_view2 as select tab.*, COUNT(*) AS occurs
from tab group by tab.*
having COUNT(*) = 1; 
select COUNT(*) from tab_view2; -- first desired result
select * from tab_view2; -- second desired result