Kirjoittaja Aihe: mysql kyselyn järjestys[Ratkaistu]  (Luettu 2496 kertaa)

JJK

  • Käyttäjä
  • Viestejä: 359
  • Ubuntu Mate 22.04
    • Profiili
mysql kyselyn järjestys[Ratkaistu]
« : 23.11.22 - klo:18.12 »
Olen jo tovin yrittänyt tehdä mysql:stä kyselyyn tarvittavaa järjestystä.
Mutta en vaan millään ole onnistunut.
Mitenhän tätä pitäs oikein lähestyä, kun ei omassa päässä nyt oikein välähdä?

Ensimmäisenä uusin päiväyksen mukaan.
Sitten kaikki samaan ryhmään kuuluvat
Jäljellä olevistä uusin päiväys ja samaan ryhmään kuuluvat
jne....

id  group  date
1     44     2022-10-12
2     44     2022-10-20
3     44     2022-10-10
4     45     2022-10-10
5     45     2022-10-30
6     56     2022-10-22
7     56     2022-10-10
8     51     2022-10-10
9     51     2022-10-25

Toivottu listaus ois kai tämän näköinen

id  group  date
5     45     2022-10-30
4     45     2022-10-10
9     51     2022-10-25
8     51     2022-10-10
6     56     2022-10-22
7     56     2022-10-10
2     44     2022-10-20
1     44     2022-10-12
3     44     2022-10-10
« Viimeksi muokattu: 03.12.22 - klo:17.37 kirjoittanut JJK »

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: mysql kyselyn järjestys
« Vastaus #1 : 24.11.22 - klo:01.16 »
Jos sulla vaan yksi taulu, niin eikö tuo mene

SELECT *
FROM [taulun nimi]
ORDER BY date, group, id (siinä järjestyksessä, kun pitää järjestää)

Tuolla hyvä kurssi ja paljon oppia ihan selkokielellä
https://tikape.mooc.fi/syksy-2022/index
« Viimeksi muokattu: 24.11.22 - klo:01.20 kirjoittanut Snufkin »
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

JJK

  • Käyttäjä
  • Viestejä: 359
  • Ubuntu Mate 22.04
    • Profiili
Vs: mysql kyselyn järjestys
« Vastaus #2 : 25.11.22 - klo:16.25 »
Ei toimi.

Järjestää ensin päiväyksen mukaan ja jos se on sama kuin toisessa rivissa niin järjestää group:n mukaan jne

Tärkeää olisi, että group:t olisi peräkkain samassa nipussa.


Koodia: [Valitse]
SELECT *
FROM test
ORDER BY date DESC, group, id

Tulee näin:
5    45    2022-10-30
9    51    2022-10-25
6    56    2022-10-22
2    44    2022-10-20
1    44    2022-10-12
3    44    2022-10-10
4    45    2022-10-10
8    51    2022-10-10
7    56    2022-10-10

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: mysql kyselyn järjestys
« Vastaus #3 : 26.11.22 - klo:17.40 »
Ei toimi.

Järjestää ensin päiväyksen mukaan ja jos se on sama kuin toisessa rivissa niin järjestää group:n mukaan jne

Tärkeää olisi, että group:t olisi peräkkain samassa nipussa.


Koodia: [Valitse]
SELECT *
FROM test
ORDER BY date DESC, group, id

Tulee näin:
5    45    2022-10-30
9    51    2022-10-25
6    56    2022-10-22
2    44    2022-10-20
1    44    2022-10-12
3    44    2022-10-10
4    45    2022-10-10
8    51    2022-10-10
7    56    2022-10-10

Ehkä sitten helpon järjestää koodin puolella.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

JJK

  • Käyttäjä
  • Viestejä: 359
  • Ubuntu Mate 22.04
    • Profiili
Vs: mysql kyselyn järjestys
« Vastaus #4 : 03.12.22 - klo:17.37 »
Löytyihän ratkaisu.

Koodia: [Valitse]
SELECT *
FROM test t
ORDER BY
    (SELECT MAX(t2.date)
     FROM test t2
     WHERE t.grou = t2.grou) DESC, date DESC

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: mysql kyselyn järjestys[Ratkaistu]
« Vastaus #5 : 03.12.22 - klo:18.24 »
Hyvä että onnistui.

Mutta kannattaa muistaa, että kun kyse on vain tulosten järjestämisestä, ei sillä ole suurta merkitystä tekeekö sen haussa vai koodissa. Likimain sama määrä dataa liikkuu tietokannan ja ohjelman välillä.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: mysql kyselyn järjestys[Ratkaistu]
« Vastaus #6 : 03.12.22 - klo:20.50 »
Hyvä että onnistui.

Mutta kannattaa muistaa, että kun kyse on vain tulosten järjestämisestä, ei sillä ole suurta merkitystä tekeekö sen haussa vai koodissa. Likimain sama määrä dataa liikkuu tietokannan ja ohjelman välillä.

Sillä on suurikin merkitys tehdäänkö järjestäminen yksi vai kaksi kertaa.