Najlepsza Technika Rozwiązywania Błędu 3504 Sql
September 21, 2021
Zalecane: Fortect
Jeśli Twoja organizacja ma do czynienia z błędem 3504 sql, ten przewodnik użytkownika ze wskazówkami powinien Ci pomóc.
Zdjęcie stworzone przez Johna Schnobricha na Unsplash
W tej recenzji wyjaśnię, dlaczego wystąpił ten błąd [Błąd 3504] [SQLState HY000] Wybrana wartość niezagregowana musi być częścią połączonej grupy podczas pracy nad zapytaniem SQL w Teradata. Opiszę najczęstszą przyczynę problemu i pokażę, gdzie można go uniknąć w typowej przyszłości.
Problem
Błąd 3504 występuje podczas grupowania typów danych plików w Teradata przy użyciu klauzuli GROUP BY. Nie ma znaczenia, czy ktoś usunie zapytanie DML (SELECT) i/lub podobne. Jednak podczas manewrów DDL (takich jak VIEW) tworzysz niezawodny błąd. Najłatwiejszym sposobem znalezienia błędu jest:
WYBIERZ ID PRACOWNIKA, ŚREDNIA (WYNAGRODZENIE)PRACOWNIKÓWZAMÓWIENIE 1;
Celem wykonania powyższego zapytania jest oszacowanie średniej pensji wszystkich pracowników. Jednak to prawdopodobnie nie wystarczy
Brak dokumentu GROUP BY
Używając funkcji grupujących (takich jak SUM, COUNT, You avg), pamiętaj o wspomaganiu klauzuli GROUP BY między jedną konkretną klauzulą WHERE, a zatem HAVING per ORDER BY. Instrukcja SQL potrzebna do operacji jest dokładnie taka sama:
- SELECT
, AVG (atrybut) - Z tabeli1
- JOIN (POŁĄCZENIE WEWNĘTRZNE // POŁĄCZENIE OD LEWEJ DO PRAWEJ lub PEŁNE POŁĄCZENIE ZEWNĘTRZNE) table2
- ON table1.attribute pasuje do table2.attribute
- O
- GRUPA PO
- JEST
- ZAMÓW WG
Wyjątkiem jest to, że nie powinieneś umożliwiać im używania okresu czasu GROUP BY podczas grupowania danych bez użycia większości innych atrybutów, ale rzadko jest to stosowane.
Liczba nieprawidłowych opcji
Problem Wybrane wartości niezagregowane muszą jednak być częściowe, tj. Jako powiązana grupa czasami może również mieć miejsce. Być może masz jeszcze klauzulę GROUP BY w zapytaniu, a zatem lista zakupów nieporozumień w klauzuli GROUP BY jest często niekompletna, tzn. czy wszystkie argumenty użyte z cechami grupowania nie powinny być zawarte w ciągu składu BY, na przykład:
WYBIERZ ID PRACOWNIKA, ŚREDNIA (WYNAGRODZENIE)S ROK, PRACOWNICYGRUPA EMPLOYEE_IDZAMÓWIENIE 1.2;
W powyższym przeglądzie, realizując instrukcję SELECT, zachowujemy jej 2 atrybuty EMPLOYEE_ID i YEAR, ponieważ tylko atrybut EMPLOYEE_ID należy do klauzuli GROUP BY – ta funkcja nie będzie działać.
Rozwiązanie
Zawsze używaj klauzuli GROUP BY dla funkcji
W obciążeniach finansowych bardzo rzadko stosuje się zapytania z funkcjami grupującymi bez jeszcze dalszych atrybutów, aby otrzymać przykład:
WYBIERZ SUMA (WYNAGRODZENIE)PRACOWNICY :
Możesz bezpiecznie przetestować wyszukiwanie ogólnych liczb lub silnych liczb, na przykład od początku budowania firmy. Zwykle powinniśmy mieć bardziej złożone obliczenia. Dlatego zawsze pamiętaj o dołączeniu GROUP z klauzulą BY.
Upewnij się, że lista dialogów jest poprawna
Zawsze traktuj tę metodę jako liczbę, która pasuje do listy dialogowej klauzuli SELECT, która zawiera atrybuty ilościowe polecenia GROUP BY, na przykład:
WYBIERZ ID PRACOWNIKA, ROK, ŚREDNIA (WYNAGRODZENIE)PRACOWNIKÓWGRUPA EMPLOYEE_ID, YEARZAMÓWIENIE 1.2;
Jeśli podobał Ci się ten wpis, dodaj komentarz poniżej, a nawet udostępnij go na swoim Twitterze, Facebooku, LinkedIn lub innym e-sklepie społecznościowym.
Dziękujemy za postęp!
Problem
Błąd 3504 występuje podczas mieszania dokumentów w Teradata przy użyciu klauzuli GROUP BY. Niezależnie od tego, czy przesyłasz tylko zapytanie DML (SELECT), czy tworzysz je podczas jednej funkcji DDL (np. VIEW), musisz otrzymać stary błąd. Oto często najłatwiejszy sposób na uzyskanie informacji o błędzie:
WYBIERZ ID PRACOWNIKA, ŚREDNIA (WYNAGRODZENIE)PRACOWNIKÓWZAMÓW PRZEZ 1;
Celem tego zapytania o sytuację jest znalezienie średniej pensji wszystkich osób. Ale rodziny prawdopodobnie czegoś chcą?
Brak instrukcji GROUP BY
Zalecane: Fortect
Czy masz dość powolnego działania komputera? Czy jest pełen wirusów i złośliwego oprogramowania? Nie obawiaj się, przyjacielu, ponieważ Fortect jest tutaj, aby uratować sytuację! To potężne narzędzie jest przeznaczone do diagnozowania i naprawiania wszelkiego rodzaju problemów z systemem Windows, jednocześnie zwiększając wydajność, optymalizując pamięć i utrzymując komputer jak nowy. Więc nie czekaj dłużej — pobierz Fortect już dziś!
Korzystając z operacji grupowania (na przykład SUM, COUNT, You avg), pamiętaj, aby zobaczyć klauzulę GROUP BY między poleceniem WHERE a wynikiem HAVING / ORDER BY. Pobieranie sprawy SQL odbywa się w następujący sposób:
- SELECT
, AVG (atrybut) - Z tabeli1
- JOIN (INNER JOIN // lewa strona do RIGHT dla każdego FULL OUTER JOIN) table2
- ON table1.attribute pokazuje table2.attribute
- O
- GRUPA PO
- JEST
- ZAMÓW WG
Wykluczenie – klauzula GROUP BY na wypadek, gdyby agregowanie danych bez użycia dodatkowego symbolu nigdzie nie zniknęło, ale jest rzadko używane.
Liczba o nieprawidłowych atrybutach
Problem z wybranymi wartościami niezagregowanymi, które zwykle powinny być częścią Twojej obecnej połączonej kolektywu, może również wystąpić w przypadkach, w których masz już klauzulę GROUP BY w zapytaniu, a proces ten może oznaczać, że lista dobre powody w klauzuli GROUP BY są zawsze niekompletne, tj. nawet nie wszystkie argumenty użyte do operacji grupowej nie zostały uwzględnione w ciągu grupy BY, na przykład:
WYBIERZ ID PRACOWNIKA, ROK, ŚREDNIA (WYNAGRODZENIE)PRACOWNIKÓWGRUPA EMPLOYEE_IDZAMÓWIENIE 1.2;
Argumentując powyżej, chcemy, aby po wyrażeniu SELECT dwa atrybuty EMPLOYEE_ID i YEAR, jeden i tylko jeden atrybut EMPLOYEE_ID zawierały klauzulę GROUP BY – urządzenie w rzeczywistości nie działa.
Rozwiązanie
Zawsze używaj oferty GROUP BY do grupowania funkcji
W tej praktyce wyników wyszukiwania funkcja zbierania bez dodatkowych atrybutów jest bez wątpienia używana bardzo rzadko, na przykład:
WYBIERZ SUMA (WYNAGRODZENIE)PRACOWNIKÓW ;
Zazwyczaj jesteś bezpieczny podczas lub podczas testowania tutaj w poszukiwaniu sum lub uniwersalnych cyfr, na przykład istnienia firm od samego początku kwalifikowanych leadów. Zwykle potrzebujemy bardziej złożonych metod. Dlatego zawsze pamiętaj o połączeniu GROUP z klauzulą BY.
Upewnij się, że lista argumentów jest dokładna
Zawsze sprawdzaj, czy lista argumentów w naszej własnej klauzuli SELECT odpowiada ilości atrybutu w poleceniu GROUP BY, na przykład:
WYBIERZ ID PRACOWNIKA, ROK, ŚREDNIA (WYNAGRODZENIE)PRACOWNIKÓWGRUPA EMPLOYEE_ID, YEARZAMÓWIENIE 1.2;
Jeśli podobał Ci się ten post w pobliżu właścicieli, możesz użyć poniższego komentarza lub udostępnić swój komentarz na Facebooku, Twitterze, LinkedIn lub innej sieci społecznościowej.
Dziękuję wszystkim Zaawansowane!
Pobierz to oprogramowanie i napraw swój komputer w kilka minut.
Error 3504 Sql
Fout 3504 Sql
Fehler 3504 Sql
오류 3504 Sql
Erreur 3504 Sql
Fel 3504 Sql
Errore 3504 Sql
Error 3504 Sql
Oshibka 3504 Sql
Erro 3504 Sql