[ zgas @ 19.05.2007. 10:42 ] @
Pokusacu da pitam prema primeru:

U jednoj tabeli imam kolonu 'slova' u kojoj se ponavljaju vrednosti:
- 'a' 4 puta
- 'b' 3 puta
- 'c' 1 put

___
| a |
| a |
| a |
| a |
| b |
| b |
| b |
| c |


Potrebno mi je da selectujem rezultat iz tabele ali tako da se uzima iz pomenute kolone 'slova' od svake vrednosti po najvise 2 reda.
Znaci posle takvog selecta bi trebao da dobijem ovaj rezultat:

___
| a |
| a |
| b |
| b |
| c |

Kako to moze da se izvede u selectu?
[ 357_97 @ 19.05.2007. 13:09 ] @
Ako sam te dobro razumeo mislim da ce ti ovo pomoci...
[ zgas @ 19.05.2007. 15:45 ] @
Link koji ste napisali ne radi.
[ 357_97 @ 19.05.2007. 16:00 ] @
Greskom sam obrisao ? kad sam skidao session id...
Code:
http://www.devprotalk.com/showthread.php?t=2761
[ zgas @ 22.05.2007. 11:28 ] @
Da, video sam dva resenja i oba su mi neupoterbljiva:

1. sa inner join (problem je sto je potrebno N innner yoin-a ako imam je broj ogranicenih kolona za citanje N, i to je za mene previse jer su mi ogranicenja i po 1000)

2. je sa subselectom (problem je sto mi se skript ovde izvrsava nenormalno dugo - ne znam ni sam koliko bi trajao jer imam preko 300.000 kolona, a i jede momoriju na hard disku)

Interesuje me da li se to moze nekako resiti sa upotrebmo IF uslova, variabli...? Moze da bude napisan i MySQL skript, ne mora da bude sve u jednom queriju. Nisam expert za Mysql pa mi je ovo dosta komplikovano, a potrebno mi je.

Molim za pomoc, ako neko zna!
[ chachka @ 23.05.2007. 09:41 ] @
Code:

SELECT DISTINCT(slova) AS slova
  FROM jedna_tabela
 UNION ALL
SELECT DISTINCT(slova) AS slova
  FROM jedna_tabela
 GROUP BY slova
HAVING COUNT(slova) > 1
 ORDER BY slova
[ zgas @ 23.05.2007. 21:05 ] @
Molim za pomoc! Nazalost ne znam sta radi predhodni upit i kako se koristi.
Molim vas da mi pomognete kako da ovaj poslednji uput primenim na situaciju opisanu u prvoj poruci koju sam napisao?

Paznja! U stvarnosti ne treba da dobijem vracene po dve kolone za istu vrednost, nego po 1000 kolona za instu vrednost.

Ne znam da li ovaj predhodni upit to dozvoljava i kako?
[ CandyMan @ 29.05.2007. 07:02 ] @
http://www.elitesecurity.org/t53420
[ zgas @ 07.06.2007. 19:07 ] @
Posle malo testiranja zakljucio sam:

1. SUBSELECT (koji je ovde navedeno, i za koji su dati linkovi) ne radi.
Jednostavno za moju tabelu od 4000 redova pri primeni da se selektuje najvise 50 istih - ne radi.
Ako sam ga dobro primenio:

Code:

SELECT e1.imena FROM imena AS e1
  WHERE (50 > (select count(*) from imena e2
                    WHERE e2.id_mesta=e1.id_mesta))


Znaci hteo sam da iz svakog mesta selektujem po najvise 50 imena.

2. DISTINCT koji je jednom predlozen ne znam da upotrebim
u mom slucaju kada se treba selektovati najvise 50 istih redova

Molim vas,
meni nije neophodno da mi ovaj posao bude odradjen sa jednim QUERIJEM, vec slobodno mozete predloziti
i SQL skriptu. Znaci posto imam 5.0 Mysql, moze i LOOP metod i sl.

Molim vas ako imate neka druga resenja da mi pomognete?
Ovo mi je neophodno, a ne razumem se toliko da to mogu sam da uradim.
[ ffb @ 08.06.2007. 11:06 ] @
>


Code:

SELECT e1.imena FROM imena AS e1
 WHERE (50 > (select count(*) from imena e2
                   WHERE e2.id_mesta=e1.id_mesta))


Code:


SELECT  e1,imena,  COUNT(*) AS broj FROM imena AS e1 GROUP BY 
e1.id_mesta, HAVING broj<=50 ;

[ zgas @ 08.06.2007. 21:32 ] @
Ni ova dva upita predhodna ne rade kako treba, pogotovo ovaj drugi jer on vraca samo po jedano ime i to ne iz onih mesta koje imaju vise od 50 imena.

Znaci da ponovim,

teba mi upit koji ce da mi vrati iz svakog mesta po najvise pedeset imena.

Ima li resenja?