Porównaj dwa wiersze w tej samej tabeli dla równości w SQL

sujeeth.selvam – piątek, 19 stycznia 2018 12: 34

>> mam następującą tabelę w mojej bazie danych: <<

gdzie jest DDL dla tego stołu? Jakie są klucze? Jakie typy danych? Jakie są ograniczenia? Naprawdę nic nie napisałeś. Ale co gorsza, wydaje się pan wierzyć, że istnieje coś takiego jak ogólne, magiczne, uniwersalne „id” w RDBMS. Nie ma. Używamy kluczy i z definicji klucz jest podzbiorem kolumn tabeli w taki sposób, że są one unikalne dla każdego wiersza w tej tabeli. Zgadując, co może mieć na myśli, aby opublikować, domyślam się, że to:

Utwórz tabelę Insurance_Policies
(FOOBAR_ID CHAR(2) NOT NULL klucz podstawowy
CHECK(FOOBAR_ID jak „),
policy_nbr CHAR(5) NOT NULL
CHECK (policy_nbr jak „)

wstaw do Insurance_Policies
wartości
(’01’, '34564′),
(’02’, '67548′),
(’03’, '34564′),
(’04’, '98271′),
(’05’, '90198′);
(’06’, '98271′);

Szukam zapytania sql, które będzie porównywać wartości kolumn policy_nbr we wszystkich wierszach 5 i zwróci te wiersze, które mają wartość równą co najmniej jednemu innemu wierszowi.

SELECT policy_nbr, MIN (foobar_id), MAX (foobar_id)
FROM Insurance_Policies
GROUP BY policy_nbr
HAVING COUNT(*) > 1;

założyłem, że skoro nie mamy żadnych specyfikacji, są tylko dwa duplikaty foobar_id na numer polisy. Jest to jeden z wielu powodów, dla których prosimy ludzi o publikowanie DDL. Gdybym miał rację, postawiłbyś na swoim stole ograniczenia, aby to zapewnić.

proszę opublikować DDL i przestrzegać standardów ANSI/ISO, prosząc o pomoc.

Leave a Reply

Twój adres e-mail nie zostanie opublikowany.