Jump to content

Select - Distinct - NewID


Lifeissosimple
 Share

Recommended Posts

Boa Tarde!

estou a tentar um sorteio da liga do campeões, ou seja, tenho uma tabela simples com a posição, clube, país e flag,

agora quanto tento ir buscar as 4 primeiras equipas à BD, por vezes, vêm clubes do mesmo país.

o SQL que estou a usar é o seguinte: select top 4 posição, clube from sorteio where flag = 0 and exists(select Distinct pais from sorteio) order by newid()

a flag inicialmente está a zero para todos os clubes, e à medida que vão saindo, muda o seu estado para 1, está parte funciona bem, o problema está nos países repetidos,

obrg,

AM

Link to comment
Share on other sites

O algoritmo não é assim tão simples.

Primeiro tens os potes, os clubes melhor cotados são os cabeças de série e por aí.

Cada grupo é constituido por um clube de cada pote.

Assim que sai um clube, o pote seguinte é filtrado para só serem selecionaveis os clubes possiveis.

Parece-me complicado fazer tudo apenas com um select, mas se conseguires optimo 🙂

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Como está tudo na mesma tabela, podes fazer o DISTINCT pais directamente na query. Não precisas da subquery. Mas a ideia que penso que tens implica agrupares por país, obteres a posição mais elevada desse país e retornares um clube. Por isso, com um GROUP BY e um ORDER BY deves conseguir o que pretendes.

Agora, aquilo que eu acho é que não é assim que um sorteio da liga dos campeões funciona. Tipicamente está relacionado com os coeficientes europeus de cada clube. Os 8 mais altos são os cabeças de série (entram em clubes separados), os 8 mais altos seguintes entram a seguir, aleatoriamente em cada um dos grupos, por aí em diante...

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.