🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #194652

Re: PostgreSQL - jak zredagować SQL?

#194652
From: Marek
Date: Thu, 24 Sep 2015 10:00
46 lines
2674 bytes
W dniu 2015-09-22 o 16:39, Lesiok pisze:


> UPDATE ratings SET games=games+(wylicyć o ile zapewne analogicznie jak
> to tajemnicze subquery)

Oki, mogę oczywiście zliczać dane countem jednakże kolumn jest więcej. 
Chodzi o coś w rodzaju statystyk piłkarskich. Jest tabela kto z kim grał 
i ile drużyny zdobyły umownie "bramek" w każdym ze spotkań. Trzeba 
zliczyć ile dana drużyna miała spotkań, ile wygranych, ile przegranych, 
różnicę "bramek" i jeszcze jakieś punktacje itp. Czyli w skrócie na 
podstawie tabeli:

CREATE TABLE players
(
	players_id			SERIAL PRIMARY KEY,
	player_a_id			int4 NOT NULL,
	player_b_id			int4 NOT NULL,
	a_result			int4,
	b_result			int4,
	(...)
	
	FOREIGN KEY (player_a_id) REFERENCES users (users_id) MATCH FULL ON 
DELETE CASCADE ON UPDATE CASCADE,
	FOREIGN KEY (player_b_id) REFERENCES users (users_id) MATCH FULL ON 
DELETE CASCADE ON UPDATE CASCADE
);

W dodatku gracz może być graczem A jak i B w zależności od spotkania. 
Oba te warianty dzielę na dwa różne zapytania aby zupełnie się nie 
zakręcić. Stąd pomysł posłużenia się tabelą tymczasową - jak niżej.


> A tak w ogóle to aż się prosi o triger aktualizujący automatycznie te dane.

Dane są typu live. Musiałbym wyliczyć stan początkowy, zatrzymać 
aplikację, a potem otriggerować tabelę i uruchomić. Ponadto z czasem 
może okazać się, że klient będzie chciał jeszcze inne dane statystyczne 
oglądać. Za bardzo złożone. Trzeba więc analizować dane na zasadzie 
statystycznej. Zakładam więc tabelę tymczasową i w niej zliczam co 
trzeba. Póki co nieudolnie na zasadzie pętli w PHP z napędzającym 
selectem a w niej szeregu updateów.

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <mu0hj5$bn$1@news.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
References: <mtrd71$eu8$1@news.icm.edu.pl> <56016830$0$8381$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail
From: Marek <precz@spamowi.com>
Newsgroups: pl.comp.bazy-danych
Subject: Re: PostgreSQL - jak zredagować SQL?
Date: Thu, 24 Sep 2015 12:00:01 +0200
Organization: ICM, Uniwersytet Warszawski
Lines: 46
Message-ID: <mu0hj5$bn$1@news.icm.edu.pl>
References: <mtrd71$eu8$1@news.icm.edu.pl> <56016830$0$8381$65785112@news.neostrada.pl>
NNTP-Posting-Host: 89-69-222-145.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: news.icm.edu.pl 1443088805 375 89.69.222.145 (24 Sep 2015 10:00:05 GMT)
X-Complaints-To: usenet@news.icm.edu.pl
NNTP-Posting-Date: Thu, 24 Sep 2015 10:00:05 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0
In-Reply-To: <56016830$0$8381$65785112@news.neostrada.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit