#sql #mysql #programowanie

Mam hipotetyczną tabelę. Potrzebuję z niej wybrać sumę punktów dla zawodnika łącznie, oraz sumę w serii. Załóżmy 3 serie po 10 punktów.

Czy mogę zrobić to w jednym zapytaniu? Bez problemu wybieram sumę wszystkich punktów dla poszczególnych zawodników, bez problemu wybiorę punkty z danej serii osobno(LIMITem wycinam tylko punkty które należały do danej serii, bo te są dodawane kolejno, jeden po drugim). Ale nie potrafię tego spisać w jednym
#aqwartmorderca #aqwarttolewak #sql #mysql #mssql #informatyka #ciezkiepytania

Potrzebuję pobrać z bazy SQL (akurat to jest MSSQL) z tabeli "ostatnie odwiedziny" (data, uzytkownikid) ostatnią datę odwiedzin wszystkich użytkowników. Obecnie robię to poprzez max(data) i potem group by uzytkownikid. I teraz pytanie: na ile wydajny jest ten sposób? Jak można to rozwiązać lepiej? Macie jakieś pomysły? Baza sql ma 500 000 rekordów - 1000 użytkowników ze średnią ilością odwiedzin 500. (więcej już
@siemanko: To się z vba wypisuję:/

Od strony bazy danych masz dwie opcje:

1. Robisz sobie zmiany w excelu, a potem wczytujesz je jedną z metod, które podałem (w zależności od tego, jaka to jest baza danych - jaki silnik)

2. Zmiany robisz bezpośrednio w bazie używając sqla. Tylko musiałbym wiedzieć jakiego typu są to zmiany. Sama składnie też się różni - w zależności od silnika.
Mam takie zapytanie:

SELECT login, count(*) as cnt FROM tab_1 WHERE (...) GROUP BY login ORDER by cnt DESC;

Zapytanie zwraca ilość rekordów z podziałem na każdego użytkownika, czyli jeżeli user a1 ma 5 rekordów w tabeli a user b2 ma 2 wpisów, to baza zwróci:

------ login --------- cnt ----------
------ a1 --------- 5
------ b2 --------- 2
Ok, ale jak wykonać jakąś operacje na polu cnt? Mianowicie chciałbym wyliczyć średnią
#sql #bazydanych

Zakładając, że ktoś nie ogarnia, nie zna się. Ale słyszał gdzieś kiedyś, że jak nałoży się indeks na kolumnę to szybciej wszystko działa i w ogóle.

Jeżeli taki ktoś założy indeks na wszystkie kolumny to nadal będzie szybciej, tylko zmarnuje niepotrzebnie przestrzeń na dysku, czy indeksy na wszystkim namieszają bazie i będzie wręcz gorzej?
#programowanie #sql

Projektuje system, gdzie mam tabelę z osobami, osoba może być użytkownikiem (user), osoba może przynależeć do zespołu, i osoba może się zgłosić na imprezę. Osoba też musi płacić składki, składki może płacić w kilku ratach, a składka jest określana indywidualnie dla każdej osoby na każdy rok, czy taki projekt bazy ma sens? Czy coś pominąłem?

http://i.imgur.com/2Tqiz.png
@Yahoo_: No tak, podczas rejestracji wpłat chcę oznaczać na jaki rok jest to wpłata, plus muszę powiązać wpłatę z imieniem i nazwiskiem, a nie ze składką.... chyba jednak projekt sam się broni, więc powinno być ok. ;)

@Wozyack: @Yahoo_: Dzięki za rzut okiem :)
#sql #ciezkiepytania Czy wykonując INSERT do bazy mySQL wielu wpisów (np. 100) w jednym zapytaniu istnieje TEORETYCZNA możliwość nie dodania CZĘŚCI (czyli 60 wpisów się doda , a 40 nie) np. w przypadku braku prądu? Czy może zadziała to jak transakcja czyli całość nie została wykonana = rollback?
Zapytam jeszcze raz: są teraz jacyś wykopowi eksperci od baz danych i SQL? Mam sobie 3 tabele z czego 2 z nich były w relacji ISA z tą trzecią, już w samej bazie danych mają ustawione klucze obce na tamtą, wszystkie jej pola i parę nowych. I teraz jak chcę wpisywać rekordy do bazy to mam to robić tylko do tych tabel które były ISA a tamtą 3. zupełnie olać
Są już o tej porze jacyś wykopowi eksperci od baz danych i SQL? Mam sobie 3 tabele z czego 2 z nich były w relacji ISA z tą trzecią, już w samej bazie danych mają ustawione klucze obce na tamtą, wszystkie jej pola i parę nowych. I teraz jak chcę wpisywać rekordy do bazy to mam to robić tylko do tych tabel które były ISA a tamtą 3. zupełnie olać
Mam sobie najwzwyklejsze i najprostsze zapytanie SQL

INSERT INTO Producenci VALUES ("XYZ Company","New Bark Town, ENG",1978)


a Microsoft SQL Server Management studio w odpowiedzi wywala mi

Msg 207, Level 16, State 1, Line 1


Invalid column name 'XYZ Company'.


Msg 207, Level 16, State 1, Line 1


Invalid column name 'New Bark Town, ENG'.

Że co, #!$%@?? Skąd on niby bierze że to ma być nazwa kolumny, czyżbym przez wiele lat uczył
@sylwke3100: Inne tabele to inna sprawa. Optymalizować możesz na milion różnych sposobów, wszystko zależy od struktury aplikacji (np. stosunek odczytów do zapisów do tabeli). Ja na Twoim miejscu przeliczyłbym ile w tej tabeli będzie wpisów docelowo, jeśli <100 000 to bym nic nie ruszał. Ale najlepszą opcją jest ich archiwizowanie.
Mam pytanie dot. #sql: mam 2 tabele o identycznej budowie i różnych zawartościach (id rekordów też są unikalne), chcę policzyć rekordy spełniające określone warunku. Jak tu teraz dodać COUNT()?

SELECT id FROM tab1 WHERE warunki UNION SELECT id FROM tab2 WHERE warunki
@rss: ok, już wykombinowałem. Gdyby ktoś to kiedyś znalazł i też potrzebował pomocy:

SELECT COUNT(id) FROM

(SELECT id FROM tab1 WHERE warunki UNION

SELECT id FROM tab2 WHERE warunki)

AS x
#sql #hilfe

dokumenty:

| id | nr_akt | rok_wydania | imie | nazwisko | pesel |

11 50.2 2012 adam nowak 33333..

12 50.2 2012 adam nowak 33333..

14 54.2 2012 jan kowalski 55555..

8 54.2 2011 jan iksinski 88888..

select * from dokumenty where rokwydania!='0000' group by id, nrakt, rok_wydania, pesel:

result :

11 50.2 2012 adam nowak 33333..


14 54.2 2012 jan kowalski 55555..


8 54.2 2011 jan
#sql #hilfe

Mam bazę z 4 kolumnami:

imie // nazwisko // pesel //data_wniosku

Chcę wyszukać rekody, które się dublują tj. pesel i data wniosku są taki same, jakie zapytanie zrobić? Przykład:

Adam Kowalski 11111111111 2012-10-22

Adam Kowalski 11111111111 2012-10-22

Adam Kowalski 11111111111 2012-10-21

Chcę wyszukać zatem tylko te 2 pierwsze wpisy, z datą 2012-10-22

Jestem noga tak szczerze z tego :P
#mysql #sql

Mam taką tabelę

+----+-----------+

| id | some_data |

+----+-----------+

| 1 | wykop |

| 2 | dupa |

| 3 | cycki |

| 3 | cycki |

| 2 | dupaaa |

| 3 | cycki |

| 2 | dupaaa |

| 1 | cycki |

| 3 | wykopki |

+----+-----------+

I chcę zliczyć ilość wystąpień wartości z pola id. Silnik SQL powinnien zwrócić