ray Posted November 12, 2007 Report Share Posted November 12, 2007 (edited) Ir tabula table_1, kurā ir strukstūra id, lauks_1. No šīs tabulas lauka vajadzētu izvadīt skaitu laukiem, kas neatkārtojas tabulas laukā lauks_1. Piemēram tabulā ir šādi dati [id-lauks_1]: 1-a, 2-b, 3-c, 4-b, 5-d utt. Rezultāts ko man vajadzētu izgūt ir 4. Kāds varētu būt sql vaicājums? Edited November 12, 2007 by ray Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2007 Report Share Posted November 12, 2007 SELECT COUNT(DISTINCT(lauks_1)) FROM table_1; Link to comment Share on other sites More sharing options...
Delfins Posted November 12, 2007 Report Share Posted November 12, 2007 Imo labaak maaciities klasisko SQL: select count(*) from tabula group by lauks_1 PS: Un neaizmirsti par indeksiem... Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2007 Report Share Posted November 12, 2007 Delfins, tavs kverijs tomēr dara nedaudz ko citu. Link to comment Share on other sites More sharing options...
marcis Posted November 12, 2007 Report Share Posted November 12, 2007 ko tad citu viņš dara? Link to comment Share on other sites More sharing options...
Vebers Posted November 12, 2007 Report Share Posted November 12, 2007 Delfina pieprasijums izvelk no tabulas un sasumme visus atshkjiriigos ierakstus piemeram:: abols 1 burkans 12 gurkji 1 bet andrisp, piemerams sasumee shis atshkjirigas vertibas, piemeram: 14 (skat iepriekshejo piemeru) Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2007 Report Share Posted November 12, 2007 (edited) Delfina kverijs saskaita cik katra vērtība iekš lauks_1 atkārtojas. Tas nozīmē, ja man ir šādi dati: 1 | bla2 | desa 3 | bla 4 | hmm 5 | hmm Tad viņa kversijas atgriezīs: 21 2 Mans kverijs atgrieztu: 3 MakaTaNaw, nedaudz savādāk. Nevis sasumē, bet izskaita unikālās vērtības (ja vērtība atkārtojas vairākas reizes, tad tiek ņemta vērā tikai vienu reizi). Edited November 12, 2007 by andrisp Link to comment Share on other sites More sharing options...
Vebers Posted November 12, 2007 Report Share Posted November 12, 2007 Mja, nedaudz kļūdījos rakstot.. domu gājiens bija tas pats :) Link to comment Share on other sites More sharing options...
Delfins Posted November 12, 2007 Report Share Posted November 12, 2007 jap... sajaucu nedaudz vajadzīgo rezultātu Bet, mysql_num_rows() atgriezīs īsto. Link to comment Share on other sites More sharing options...
andrisp Posted November 12, 2007 Report Share Posted November 12, 2007 Bet, Delfins, tas noteikti nav optimālākais variants. Un par šo: Imo labaak maaciities klasisko SQL. Protams, tas nav slikti, bet tajā pašā laikā, ja implementācija (šajā gadijumā MySQL) atbalsta kaut kādas custom fīčas kā DISTINCT, tad kāpēc neizmantot? Protams, pastāv iespējamība, ka nākotnē vajadzētu pārcelt sistēmu uz citu RDMS un rezultātā būtu vairāk koda ko pārveidot, bet cik šāda iespēja ir liela ? Mazāk par vienu procentu ? Vēl mazāk ? Ja skaidri zināms, ka šāda iespējamība pastāv, tad jau labāk uzreiz izmantot kādu no DB abstrakcijas klasēm. Link to comment Share on other sites More sharing options...
Delfins Posted November 12, 2007 Report Share Posted November 12, 2007 Der atcerēties arī visādus tips-tricks, jo nevienmēr vienkāršāks pieraksts strādā tā kā tam ir jābūt un pat ātrāk. http://www.liamdelahunty.com/tips/mysql_di...or_group_by.php Protams, konkrētais piemērs prasa DISTINCT... ja negrib sub-query un t.t. Link to comment Share on other sites More sharing options...
marcis Posted November 12, 2007 Report Share Posted November 12, 2007 jā tiktiešām :) nepadomāju līdz. Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 12, 2007 Report Share Posted November 12, 2007 Imo labaak maaciities klasisko SQL: Mhmmm cik nu man zināms, tad distinct ir ļoti normāls keywords kurš tā kā +- visur arī ir pieejams. OKZ tātad sākam, ka MySQLā tas ir, Oracle, MS SQLā, Postgresā arī, citos man bija slinkums skatīties, es te googlā atradu kaut kādu it kā SQL92 standarta draftu http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt kurā arī DISTINCT ir iekšā. Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
Recommended Posts