DevProTalk

Forumi IT profesionalaca
web development, web design, e-business, SEO


Idite nazad   DevProTalk > Web development i web aplikacije > SQL baze podataka - Sponzor: Baze-Podataka.net
Želite da se reklamirate ekskluzivno na ovoj poziciji? Javite se

SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka

Odgovori
 
Alati teme Način prikaza
Staro 30. 09. 2009.   #1
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default Brojanje grupisanih rekorda

Evo skripta za kreiranje tabele:
Kôd:
CREATE TABLE items (
    a character varying(10),
    b character varying(10),
    total integer,
    id integer NOT NULL
);

INSERT INTO items (a, b, total, id) VALUES ('a', 'b', 10, 1);
INSERT INTO items (a, b, total, id) VALUES ('a', 'c', 10, 2);
INSERT INTO items (a, b, total, id) VALUES ('a', 'd', 10, 3);
INSERT INTO items (a, b, total, id) VALUES ('b', 'd', 10, 4);
INSERT INTO items (a, b, total, id) VALUES ('b', 'd', 10, 5);
INSERT INTO items (a, b, total, id) VALUES ('c', 'd', 10, 6);
INSERT INTO items (a, b, total, id) VALUES ('c', 'c', 10, 7);
INSERT INTO items (a, b, total, id) VALUES ('c', 'b', 10, 8);
INSERT INTO items (a, b, total, id) VALUES ('c', 'd', 10, 9);
INSERT INTO items (a, b, total, id) VALUES ('c', 'b', 10, 10);
INSERT INTO items (a, b, total, id) VALUES ('a', 'b', 10, 11);
I upit:

Kôd:
test=# select a, b, sum(total) from items group by a, b;
 a | b | sum 
---+---+-----
 b | d |  20
 a | c |  10
 c | b |  20
 a | d |  10
 c | d |  20
 a | b |  20
 c | c |  10
(7 rows)
Elem, meni treba upit koji vraća COUNT(*) za prethodni upit (dakle 7), ali bez korišćenja podupita, tj. bez da se ceo gornji upit wrapuje u SELECT COUNT(*) FROM ...
jablan je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #2
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Ne znam da li se ovo uklapa u tvoju koncepciju:
SELECT FOUND_ROWS();
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #3
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

1) Treba mi nešto database-agnostic.
2) U opštem slučaju, ne želim da izvršavam gornji query, već samo da dobijem COUNT.
jablan je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #4
MorenoArdohain
Knowledge base
Wrote a book
 
Avatar MorenoArdohain
 
Datum učlanjenja: 16.06.2005
Lokacija: Novi Sad
Poruke: 1.437
Hvala: 37
131 "Hvala" u 82 poruka
MorenoArdohain će postati "faca" uskoroMorenoArdohain će postati "faca" uskoro
Default

Mislim da to uopste nije moguce bez koriscenja podupita.
__________________
Năo quero mais seguir um só caminho
MorenoArdohain je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #5
LiquidBrain
Milan Cvejic
Wrote a book
 
Avatar LiquidBrain
 
Datum učlanjenja: 05.09.2006
Lokacija: Beograd
Poruke: 1.241
Hvala: 32
73 "Hvala" u 56 poruka
LiquidBrain će postati "faca" uskoro
Pošaljite poruku preko Yahoo za LiquidBrain
Default

Ideja, ako se koristi baza koja podrzava kursore, onda ideja je da se deklarise kursor za odredjeni query i onda odesh na kraj i vidish koliko ima redova...

Mozda ovo moze da pomogne: http://www.postgresql.org/docs/8.1/s...l-cursors.html
__________________
http://weevify.com
LiquidBrain je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #6
Dejan Topalovic
old school
Professional
 
Datum učlanjenja: 15.02.2006
Lokacija: Wien, Austria
Poruke: 304
Hvala: 121
47 "Hvala" u 26 poruka
Dejan Topalovic će postati "faca" uskoro
Pošaljite poruku preko MSN za Dejan Topalovic
Default

Kad sam zadnji put citao SQL ANSI 2003 standard, cini mi se da nisam nigdje vidio jasnu definiciju pojma ROW_COUNT. Svaki database vendor je to odradio na svoj nacin, npr. Oracle na svoj, MS SQL na svoj, a odskora i MySQL na svoj nacin.

Meni ne pada na pamet nijedno rjesenje bez koristenja podupita...

Za koju bazu ti tacno treba?
__________________
Blog: Baze podataka
------------------------
Oracle OCP DBA
Oracle OCE SQL Expert
Oracle OCP Developer
Certified MySQL DBA
Dejan Topalovic je offline   Odgovorite uz citat
Staro 30. 09. 2009.   #7
kaizen
old school
Professional
 
Avatar kaizen
 
Datum učlanjenja: 07.02.2006
Poruke: 340
Hvala: 32
44 "Hvala" u 20 poruka
kaizen će postati "faca" uskoro
Default

Kôd:
select count(distinct(concat(a,'-',b))) from items;
... pod uslovom da tabela nije velika i da database-agnostic nije uslov
kaizen je offline   Odgovorite uz citat
Staro 01. 10. 2009.   #8
jablan
VD IT Direktora
Invented the damn thing
 
Avatar jablan
 
Datum učlanjenja: 08.06.2005
Lokacija: Beograd
Poruke: 2.118
Hvala: 503
1.307 "Hvala" u 282 poruka
jablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamenjablan je pravi dragi kamen
Default

@Topalović: Baza je Postgres, ali insistiram na standardnom rešenju jer pokušavam da izvedem sve to kroz ORM, bez korišćenja suvog SQL-a, zato mi i podupit ne pije vodu. Naravno, ako ne može, ne može, prljamo ruke.

Citat:
Originalno napisao kaizen Pogledajte poruku
Kôd:
select count(distinct(concat(a,'-',b))) from items;
... pod uslovom da tabela nije velika i da database-agnostic nije uslov
Na sličnu ideju sam i ja došao (samo uz korišćenje operatora || umesto funkcije CONCAT).

BTW, sve ovo pitam jer mi mislav-will_paginate (primetio sam da si i ti imao neke commitove tamo ) ne izračunava ispravno broj slogova pri paginaciji.
jablan je offline   Odgovorite uz citat
Staro 01. 10. 2009.   #9
kaizen
old school
Professional
 
Avatar kaizen
 
Datum učlanjenja: 07.02.2006
Poruke: 340
Hvala: 32
44 "Hvala" u 20 poruka
kaizen će postati "faca" uskoro
Default

nezgodan bag. bolje sačekaj da mislav to popravi nego da provaljuješ wp_count
kaizen je offline   Odgovorite uz citat
Odgovori


Alati teme
Način prikaza

Pravila pisanja
Možete ne započinjati nove teme
Možete ne slati odgovore
Možete ne slati priloge
Možete ne izmeniti svoje poruke
vB kôd je Uključen
Smajliji su Uključen
[IMG] kod je Uključen
HTML kôd je Isključen
Pogledajte forum

Slične teme
Tema Početna poruka teme Forum Odgovori Poslednja poruka
Brojanje jedinstvenih citalaca RSS feed-ova centaur Planiranje i usability 6 21. 01. 2007. 23:12
TOP 5 rekorda iz baze ? Ministar SQL baze podataka - Sponzor: Baze-Podataka.net 15 23. 11. 2006. 12:06


Vreme je GMT +2. Trenutno vreme je 00:00.


Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.
Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.