public class Window extends JFrame {
JPanel p = new JPanel();
JLabel lbl = new JLabel("Enter the number if you have seen it before, Else empty.");
JLabel res = new JLabel("....");
static JTextField ans = new JTextField(10);
Board board = new Board();
public Window() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(board, BorderLayout.CENTER);
p.setLayout(new BorderLayout(8, 8));
p.add(lbl, BorderLayout.WEST);
ans.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (ans.getText().equals(Board.num)) {
res.setText("Good");
} else {
res.setText("Bad");
}
ans.setText("");
board.repaint();
}
});
p.add(ans, BorderLayout.CENTER);
p.add(res, BorderLayout.EAST);
p.setBorder(new EmptyBorder(10, 10, 10, 10));
this.add(p, BorderLayout.SOUTH);
setResizable(false);
pack();
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Window();
}
});
}
}
Table 1 Table 2
-------- --------
oid oid (J)
sequence trip_id
stop
trip_update_id (J)
(J) = join
和Table 1
同时从api更新30秒。
在每天结束时Table 2
已经填充了98%的重复数据,这是因为数据Feed包括过去30秒内生成的新数据和之前Feed中生成的所有数据天。结果Table 1
充满了大部分重复数据(oid在插入时自动生成,因此所有oid都是唯一的。)
Table 1
包含所有唯一记录,因此我的问题是将Table 2
转换为Table 1
中每个trip_id
的所有唯一记录的SQL。
答案 0 :(得分:0)
我不太确定我是否理解问题所在,但这里有一些建议。
使用在table2中找不到trip_update_id值从table1中删除行:
delete from table1
where trip_update_id not in (select trip_id from table2 where trip_id is not null)
(如果允许trip_id具有NULL值,is not null
部分非常重要!!!)
要复制从表1中删除trip_update_id行,请保留具有最高oid的行:
delete from table1
where oid not in (select max(oid) from table1
group by trip_update_id)