Skip to content

Commit 5136313

Browse files
authored
Added test 196.
1 parent c10d9b2 commit 5136313

File tree

2 files changed

+51
-1
lines changed
  • src
    • main/java/g0101_0200/s0196_delete_duplicate_emails
    • test/java/g0101_0200/s0196_delete_duplicate_emails

2 files changed

+51
-1
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Write your MySQL query statement below
22
# #Easy #Database #SQL_I_Day_2_Select_and_Order #2022_06_28_Time_903_ms_(48.10%)_Space_0B_(100.00%)
33
DELETE FROM Person
4-
WHERE Id NOT IN (SELECT id FROM (SELECT Email, MIN(Id) AS 'id' FROM Person GROUP BY Email) t)
4+
WHERE Id NOT IN (SELECT id FROM (SELECT Email, MIN(Id) AS id FROM Person GROUP BY Email) t)
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package g0101_0200.s0196_delete_duplicate_emails;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import java.io.BufferedReader;
7+
import java.io.FileNotFoundException;
8+
import java.io.FileReader;
9+
import java.sql.Connection;
10+
import java.sql.ResultSet;
11+
import java.sql.SQLException;
12+
import java.sql.Statement;
13+
import java.util.stream.Collectors;
14+
import javax.sql.DataSource;
15+
import org.junit.jupiter.api.Test;
16+
import org.zapodot.junit.db.annotations.EmbeddedDatabase;
17+
import org.zapodot.junit.db.annotations.EmbeddedDatabaseTest;
18+
import org.zapodot.junit.db.common.CompatibilityMode;
19+
20+
@EmbeddedDatabaseTest(
21+
compatibilityMode = CompatibilityMode.MySQL,
22+
initialSqls =
23+
"CREATE TABLE Person(id INTEGER PRIMARY KEY, email VARCHAR); "
24+
+ "INSERT INTO Person(id, email) VALUES (1, 'john@example.com'); "
25+
+ "INSERT INTO Person(id, email) VALUES (2, 'bob@example.com'); "
26+
+ "INSERT INTO Person(id, email) VALUES (3, 'john@example.com'); ")
27+
class MysqlTest {
28+
@Test
29+
void testScript(@EmbeddedDatabase DataSource dataSource)
30+
throws SQLException, FileNotFoundException {
31+
try (final Connection connection = dataSource.getConnection()) {
32+
try (final Statement statement = connection.createStatement()) {
33+
statement.executeUpdate(
34+
new BufferedReader(
35+
new FileReader(
36+
"src/main/java/g0101_0200/"
37+
+ "s0196_delete_duplicate_emails/script.sql"))
38+
.lines()
39+
.collect(Collectors.joining("\n"))
40+
.replaceAll("#.*?\\r?\\n", ""));
41+
final ResultSet resultSet = statement.executeQuery("select email from Person");
42+
assertThat(resultSet.next(), equalTo(true));
43+
assertThat(resultSet.getNString(1), equalTo("john@example.com"));
44+
assertThat(resultSet.next(), equalTo(true));
45+
assertThat(resultSet.getNString(1), equalTo("bob@example.com"));
46+
assertThat(resultSet.next(), equalTo(false));
47+
}
48+
}
49+
}
50+
}

0 commit comments

Comments
 (0)