我正在寻找一个SQL查询来给我一个表中重复条目的列表。但是,有3个不同的列需要考虑。第一个是ID,第二个是名称,第三个是日期。情况是有多个名称被分配了相同的ID,并且一天中有多个记录,这使得THOUSANDS每天都有不同的记录。
我已经对其进行了过滤,以便只显示过去7天的结果,但记录的数量仍然太多,我无法提取。我只想减少输出顺序中的行数以正确提取结果。
样品
|--id-|--name--|-------date------|
| 1 | a |5-9-2015, 10:00am|
| 1 | a |5-8-2015, 10:02am|
| 1 | a |5-8-2015, 11:00am|
| 1 | b |5-8-2015, 10:00am|
| 1 | b |5-8-2015, 10:02am|
| 1 | c |5-8-2015, 10:00am|
| 2 | d |5-8-2015, 10:00am|
预期产出
|--id-|--name--|
| 1 | a |
| 1 | b |
| 1 | c |
| 2 | d |
包含没有任何重复的条目是可以的。重要的是只返回一天中唯一ID名称组合的单个记录。
提前感谢您提供任何帮助。
答案 0 :(得分:3)
您可以将组合视为:
select distinct id, name
from sample;
如果您想要重复,请使用group by
和having
:
select id, name
from sample
group by id, name
having count(*) > 1;
编辑:
如果您希望按日期进行此操作,请将date(date)
添加到group by
和select
条款中。
答案 1 :(得分:0)
要每天返回单个id-name
数据,您可以使用:
select id, name
from tab
group by id, name, date(date)
答案 2 :(得分:0)
DATE()函数提取日期或日期/时间表达式的日期部分。
public class A extends Thread {
public A(Runnable obj) {
super(obj);
}
public class B implements Runnable {
public void run() {
System.out.println("Printing B");
}
}
public void test() {
B b = new B();
A a = new A(b);
a.start();
}
}