|
| Elegant SELECT Fra : Jens Vestergaard |
Dato : 06-01-03 20:15 |
|
Folks,
Nedenstående *elegant*, please ...
Jeg kan gøre det, men temmelig u-elegant.
Pseudo-SQL:
SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder [kriterium
1] AND 50% opfylder [kriterium 2]
.....?
--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp
| |
Tomas Christiansen (06-01-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 06-01-03 20:54 |
|
Jens Vestergaard skrev:
> SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
[kriterium
> 1] AND 50% opfylder [kriterium 2]
Søger du at få en SQL-database til at opføre sig "tilfældigt"?
Det kan man da vist ikke?
Forklar nærmere.
-------
Tomas
| |
Peter Lykkegaard (06-01-2003)
| Kommentar Fra : Peter Lykkegaard |
Dato : 06-01-03 21:38 |
|
Som svar på skriblerier forfattet af Tomas Christiansen
> Jens Vestergaard skrev:
>> SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
>> [kriterium 1] AND 50% opfylder [kriterium 2]
>
> Søger du at få en SQL-database til at opføre sig "tilfældigt"?
> Det kan man da vist ikke?
>
MSSQL/T-SQL har en RAND function
Muligvis kan det lade sig gøre vha en cursor og en temporary table
Kunne være rart at vide hvilket RDBMS der er tale om
mvh/Peter Lykkegaard
| |
Jens Vestergaard (06-01-2003)
| Kommentar Fra : Jens Vestergaard |
Dato : 06-01-03 21:50 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:avcms2$blu$1@news.cybercity.dk...
> Jens Vestergaard skrev:
> > SELECT 50 tilfældige records * FROM minTabel WHERE alle opfylder
> [kriterium
> > 1] AND 50% opfylder [kriterium 2]
>
> Søger du at få en SQL-database til at opføre sig "tilfældigt"?
> Det kan man da vist ikke?
>
> Forklar nærmere.
Njae, det er såmænd ikke selve tilfældigheden, der er det centrale, den kan
jeg klare på anden vis (hvis ikke er en løsning i SQL-sætningen) - det er
mere WHERE-sætningen, hvor *alle* records skal opfylde et kriterium, og så
skal jeg sikre, at præcis xx% også opfylder et andet.
Altså, f.eks: Jeg skal bruge 50 records, hvor alle har [Felt 1] = 'YY', og
hvor de 25 af disse 50 (hverken flere eller færre) *også* har [Felt 2] =
'ZZ'.
--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp
| |
Mikkel Bundgaard (06-01-2003)
| Kommentar Fra : Mikkel Bundgaard |
Dato : 06-01-03 22:41 |
|
On Mon, 06 Jan 2003 21:49:43 +0100, Jens Vestergaard wrote:
> Njae, det er såmænd ikke selve tilfældigheden, der er det centrale, den
> kan jeg klare på anden vis (hvis ikke er en løsning i SQL-sætningen) -
> det er mere WHERE-sætningen, hvor *alle* records skal opfylde et
> kriterium, og så skal jeg sikre, at præcis xx% også opfylder et andet.
>
> Altså, f.eks: Jeg skal bruge 50 records, hvor alle har [Felt 1] = 'YY',
> og hvor de 25 af disse 50 (hverken flere eller færre) *også* har [Felt
> 2] = 'ZZ'.
Udvælg først 25, der overholder begge krav. Derefter endnu 25, der kun
overholder det første, men ikke det andet. Union imellem disse 50 records
og du har hvad du ønsker
--
Mikkel Bundgaard
Student at IT University of Copenhagen
Codito, Ergo Sum
| |
Tomas Christiansen (06-01-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 06-01-03 22:46 |
|
Mikkel Bundgaard skrev:
> Udvælg først 25, der overholder begge krav. Derefter endnu 25, der
kun
> overholder det første, men ikke det andet. Union imellem disse 50
records
> og du har hvad du ønsker
Øv! Så nåede du lige at komme "ind foran" med dit indlæg
Jeg har samme forslag, men vil (i forbindelse med en Oracle database)
huske at bruge UNION ALL (det sparer en sortering).
-------
Tomas
| |
Jens Vestergaard (07-01-2003)
| Kommentar Fra : Jens Vestergaard |
Dato : 07-01-03 09:22 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:avcter$pi4$1@news.cybercity.dk...
> Mikkel Bundgaard skrev:
> > Udvælg først 25, der overholder begge krav. Derefter endnu 25, der
> kun
> > overholder det første, men ikke det andet. Union imellem disse 50
> records
> > og du har hvad du ønsker
>
> Øv! Så nåede du lige at komme "ind foran" med dit indlæg
>
> Jeg har samme forslag, men vil (i forbindelse med en Oracle database)
> huske at bruge UNION ALL (det sparer en sortering).
Jamen, er det ikke fremragende? Jeg bruger SQL så lidt (og til så ens
opgaver), at jeg aldrig er stødt på UNION - men så er det jo herligt at
vide, hvor man kan få hjælp.
Man takker
--
mvh
Jens Vestergaard
www.railsoft.dk
Døgnets jernbanenyheder: www.railsoft.dk/medier.asp
| |
|
|