我的数据库中有几列。我想选择一列,然后返回所有值重复的记录。所以我想得到一列,检查我的列中的哪些值出现在数据库的其余部分。然后返回这些记录。假设数据库看起来像这样:
sql prettyprint-override">id;col1;col2;col3;col4
'1','ab','cd','ef','1'
'2','ad','bg','ee','5'
'3','xx','bg','cc','6'
'4','vv','zz','ff','4'
'5','zz','ee','gg','4'
'6','zz','vv','zz','2'
'7','vv','aa','bb','8'
'8','ww','nn','zz','4'
'9','zz','yy','ff','9'
'10','qq','oo','ii','3'
我希望col1的结果是这样的
4,'vv','zz','ff',4
5,'zz','ee','gg',4
6,'zz','vv','zz',2
7,'vv','aa','bb',8
9,'zz','yy','ff',9
在这里,我们以两种不同的方式呈现副本。第一种是您要求的格式,带有附加信息。第二种更简洁。
create table t1(
id varchar(10),
col1 varchar(10),
col2 varchar(10),
col3 varchar(10),
col4 varchar(10));
insert into t1 values
('1','ab','cd','ef','1'),
('2','ad','bg','ee','5'),
('3','xx','bg','cc','6'),
('4','vv','zz','ff','4'),
('5','zz','ee','gg','4'),
('6','zz','vv','zz','2'),
('7','vv','aa','bb','8'),
('8','ww','nn','zz','4'),
('9','zz','yy','ff','9'),
('10','qq','oo','ii','3');
select * from t1;
id | col1 | col2 | col3 | col4 :- | :--- | :--- | :--- | :--- 1 | ab | cd | ef | 1 2 | ad | bg | ee | 5 3 | xx | bg | cc | 6 4 | vv | zz | ff | 4 5 | zz | ee | gg | 4 6 | zz | vv | zz | 2 7 | vv | aa | bb | 8 8 | ww | nn | zz | 4 9 | zz | yy | ff | 9 10 | qq | oo | ii | 3
with cte as(
select
id,
col1,
col2,
col3,
col4,
row_number() over
( partition by col1
order by id desc) r1,
row_number() over
( partition by col2
order by id desc) r2,
row_number() over
( partition by col3
order by id desc) r3,
row_number() over
( partition by col4
order by id desc) r4
from t1
)
select *
from cte
where
r1 > 1
or r2 > 1
or r3 > 1
or r4 > 1;
id | col1 | col2 | col3 | col4 | r1 | r2 | r3 | r4 :- | :--- | :--- | :--- | :--- | -: | -: | -: | -: 6 | zz | vv | zz | 2 | 2 | 1 | 2 | 1 5 | zz | ee | gg | 4 | 3 | 1 | 1 | 2 4 | vv | zz | ff | 4 | 2 | 1 | 2 | 3 2 | ad | bg | ee | 5 | 1 | 2 | 1 | 1
select 'col1' as "column",
col1 "value",
count(id) "count"
from t1 group by col1
having count(id)>1
union all
select 'col2',col2, count(id)
from t1 group by col2
having count(id)>1
union all
select 'col3',col3, count(id)
from t1 group by col3
having count(id)>1
union all
select 'col4',col4, count(id)
from t1 group by col4
having count(id)>1
order by "column","value";
column | value | count :----- | :---- | ----: col1 | vv | 2 col1 | zz | 3 col2 | bg | 2 col3 | ff | 2 col3 | zz | 2 col4 | 4 | 3
db
问题内容: 如何找到重复的行?如果last_name是重复字段,我想显示 任何数据库都可以,最好是oracle。 问题答案: 假设您的服务器具有GROUP_CONCAT,因为您没有提及正在使用的服务器:
我希望在QueryDSL JPA中执行此SQL请求 为了在表中找到重复的行,我应该执行这个请求。但使用QueryDSL,我无法找到编写此代码的方法。 有什么建议吗? 多谢问候,
问题内容: 我需要找到表中的所有行,其中特定字段的字符串在两个或多个位置重复。 可以在MySQL语句中完成吗? 编辑 我需要获取每一行,而不仅仅是计数有多少重复项。我希望能够编辑这些字段。 问题答案: 是的,尝试这样的事情:
我正在用Java开发一个使用JPA的路线规划系统。我需要创建一个findBy方法,通过包含它的城市列表来查找路线。以下是课程: 现在我尝试了,但并不惊讶它不起作用,如下所示: 有没有一种简单的方法可以使用JPA,或者我必须编写一个困难的自己的@Query并以某种方式迭代,才能通过集合找到一个实体?
我正在尝试从一个搜索结果页面定位所有元素,并将它们放在一个列表中。第一个问题是找到所有的元素。我没有问题找到一个特定的元素:
我有一个应用程序,我想添加一个管理页面。我希望管理页面有自己的布局从客户端布局分开。以我现有的情况来看,实现这一目标的当前“最佳”方式是什么? app.js HOC 我找到了这个。我应该创建一个和组件并过滤页面吗?