我的数据看起来像这样
1. Fname Lastname DOB ADDR SEX SSN
2. Sanal Pillai 12/11/85 Pune M -
3. Sunil Pillai 05/11/80 Pune M 123456
4. Anju Pillai 12/11/85 Pune F 345679
5. Arachana Pillai 05/11/80 Pune M
-
现在我在DOB上做一组我会相应地安排数据
select fname,lastname,dob,addr,sex,ssn from data group by dob(..rest of the columns..) having count(dob) > 1
但我想知道的是,是否有可能一次获得一个小组,即
1. Sanal Pillai 12/11/85 Pune M -
2. Anju Pillai 12/11/85 Pune F 345679
然后剩下的两行
答案 0 :(得分:2)
您好我认为您可能不知道group by子句的确切功能。下面我已经发布了几行供您理解。
Oracle GROUP BY子句用于收集SELECT语句 跨多个记录的数据,并将结果分组一个或多个 列。
<强>语法:强>
SELECT col1, col2, ... coln,
aggregate_function (column_name)
FROM tables
WHERE conditions
GROUP BY col1, col2, ... coln;
column_names你在select子句中提到的内容,你应该在group by keyword之后提到。 按照上面的语法和您的问题所需的输出查询是:
select fname,lastname,dob,addr,sex,sum(ssn) as ssn from data group by fname,lastname,dob,addr,sex having count(dob) > 1
答案 1 :(得分:1)
这是不可能的。 Sql用于从有时具有特定顺序的数据库中获取数据。在用于显示数据的工具中完成对接收数据的进一步分析。这可以是一种编程语言或其他可以使用sql接收数据的工具。
答案 2 :(得分:1)
您可以使用RANK或DENSE_RANK分析函数来分配分组ID和顺序:
ul {
display:table;
}
li {
list-style-type:none;
margin-bottom:1em;
clear:both;
display:table-row;
}
li > h3 {
display:table-cell;
margin:0;
padding:0;
white-space:nowrap !important;
}
li > h3 > span {
background-color:lightgray;
width:100%;
display:block;
padding-right:0.5em;
}
li > p {
display:table-cell;
margin:0;
padding:0;
margin-bottom:1em;
background-color:lightgray;
}