Selecteer X aantal rijen in Y aantal groepen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer met testervaring

Java developer met testervaring Functieomschrijving "De drempel tussen de burger en de Belastingdienst zo laag mogelijk houden: dat is de belangrijke taak van ons team. Dit doen we door het burgerportaal Mijn Belastingdienst continu te verbeteren." René, Java-specialist bij de Belastingdienst. De keten Interactie is een samenwerkingsverband van alle dienstonderdelen binnen de Belastingdienst. Samen zorgen we dat het contact met burgers en bedrijven goed kan plaatsvinden. Onze belangrijkste opgave? Zoveel mogelijk digitaliseren. Dat doen we binnen het onderdeel Informatievoorzieningen (IV), de ICT-organisatie van de Belastingdienst. Denk bij de producten die IV-Interactie ontwikkelt en onderhoudt aan portalen, formulieren en authenticatie- en

Bekijk vacature »

Full Stack Developer Industriële Automatiseri

Raster wordt continu betrokken bij complexe en baanbrekende projecten in industriële automatisering. Ons team is gespecialiseerd in productie automatisering en proces automatisering projecten waarin procesveiligheid een belangrijk aspect is. Ons compact en groeiend OX (Operational Excellence) team ontwikkelt, configureert en levert support op zelfontwikkelde applicaties waarmee onze klanten hun productieprocessen slimmer, sneller, goedkoper en veiliger maken. Operational Excellence wordt zichtbaar gemaakt in resultaten. Bij bedrijven met dezelfde strategie, zal een operationeel excellent bedrijf een lager operationeel risico, lagere operationele kosten hebben en relatief meer winst maken. Het Raster OX team laat haar klanten de resultaten behalen door hun eigen procesdata

Bekijk vacature »

Elise S

Elise S

17/04/2021 16:16:44
Quote Anchor link
Onderstaande code voer ik nu 8x uit op 1 pagina omdat ik max 5 rijen gegevens uit meerdere categorieën (8) nodig heb. Categorieën bestaan uit getallen in stappen van 100. Ik weet dat er een slimmere manier is om dit in 1 query te doen maar mijn kennis van MySQL is beperkt. Ik kan een SELECT-query doen maar dan heb je het ook gehad. Weet iemand een oplossing? Thx.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT *
FROM gegevens
WHERE categorie='500'
AND gesloten IS NULL
AND DATE_SUB(NOW(), INTERVAL 24 HOUR)<datum
AND id!='18' AND id!='46' AND id!='109' AND id!='227'
AND id_gebruiker!='197'
ORDER BY vertoningen DESC
LIMIT 5
Gewijzigd op 17/04/2021 19:02:57 door Elise S
 
PHP hulp

PHP hulp

25/10/2021 11:37:50
 
Ad Fundum

Ad Fundum

18/04/2021 11:23:49
Quote Anchor link
Maak gebruik van UNION.
Of gebruik ROW_NUMBER() als window-functie, bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
  `gegevens`.*,
  ROW_NUMBER() OVER (
    PARTITION BY `gegevens`.`categorie`
    ORDER BY `gegevens`.`vertoningen` DESC
  ) AS `rn`
FROM `gegevens`
WHERE `gegevens`.`categorie` IN (100, 200, 300, 400, 500, 600, 700, 800)
  AND `gegevens`.`gesloten` IS NULL
  AND DATE_SUB(NOW(), INTERVAL 24 HOUR) < `gegevens`.`datum`
  AND `gegevens`.`id` NOT IN (18, 46, 109, 227)
  AND `gegevens`.`id_gebruiker` != 197
ORDER BY
  `gegevens`.`categorie`,
  `gegevens`.`vertoningen` DESC
HAVING `rn` < 6

Ik heb deze query niet uitgeprobeerd, maar als het goed is vreet MySQL het HAVING statement. Zo niet kan je een truukje uithalen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
WITH `t` AS (
  SELECT
    `gegevens`.*,
    ROW_NUMBER() OVER (
      PARTITION BY `gegevens`.`categorie`
      ORDER BY `gegevens`.`vertoningen` DESC
    ) AS `rn`
  FROM `gegevens`
  WHERE `gegevens`.`categorie` IN (100, 200, 300, 400, 500, 600, 700, 800)
    AND `gegevens`.`gesloten` IS NULL
    AND DATE_SUB(NOW(), INTERVAL 24 HOUR) < `gegevens`.`datum`
    AND `gegevens`.`id` NOT IN (18, 46, 109, 227)
    AND `gegevens`.`id_gebruiker` != 197
)
SELECT `t`.*
FROM `t`
WHERE `t`.`rn` < 6
ORDER BY
  `gegevens`.`categorie`,
  `gegevens`.`vertoningen` DESC
Gewijzigd op 18/04/2021 11:45:24 door Ad Fundum
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.