GROUP BY gegevens verzamelen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior Developer ERP Dynamics 365

Samengevat: Deze werkgever is een softwarebedrijf. Ben jij een enthousiaste developer? Heb je ervaring met ERP of Dynamic 365 bussines central? Vaste baan: ERP Applicatie Specialist ERP MBO €3.600 - €5.200 Wij houden ons als bedrijf bezig met het leveren en implementeren van het Microsoft Dynamics pakket binnen verschillende industriële sectoren. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Binnen ons open team is er een no-nonsense cultuur. Daarnaast is er veel onderling contact door de korte communicatielijnen. Het team werkt enthousiast samen om een

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

SQL Database Ontwikkelaar

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je houdt je bezig met het ontwerp en de ontwikkeling van MS SQL server databases, dit doe je met T-SQL als programmeer laag. De begeleiding van projecten van A tot Z, je zult aansluiten bij meetings met

Bekijk vacature »

Junior PHP Developer

Dit ga je doen Software development met behulp van C# .NET en / of PHP, je mag zelf kiezen waar jij je in wil specialiseren Meedenken over het nieuwe pakket, waar moet het aan voldoen? Unit-, integratie- en diverse andere tests schrijven en uitvoeren Nauw samenwerken met je IT collega's zoals Testers, Developers, DevOps Specialisten en Architecten Jezelf ontwikkelen met behulp van trainingen en cursussen Hier ga je werken Onze klant, een grote speler in de medische sector, is op zoek naar een enthousiaste junior (of meer ervaren) Software Developer die klaar is voor een nieuwe stap in zijn of

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Front end developer React Sportgames

Functie Als Front end developer ga jij aan de slag bij een gave en bekende organisatie op het gebied van sportgames. Jij gaat aan de slag in een scrumteam met 6 developers die gepassioneerd en actief bezig zijn om spelers kwalitatieve en mooie spelervaringen aan te bieden. Als scrumteam werken ze in drie wekelijkse sprints en begin je iedere ochtend met een stand-up. Als Front end developer werk jij bij deze organisatie voornamelijk met Javascript, html, css en React. Er wordt veel gebruikt gemaakt ook van C#, Docker en Kubernetes. Het team hecht veel waarde aan het leveren van hoogwaardige

Bekijk vacature »

Lasrobot Programmeur

Over de functie Off-line programma’s maken die het beste resultaat bij de lasrobot mogelijk maken De programma’s met behulp van teach verder optimaliseren Proactief meedenken over oplossingen en over de juiste invulling van lasmallen Het lasrobotproces zoveel mogelijk optimaliseren Over het bedrijf Onze opdrachtgever is gespecialiseerd in de engineering, productie en assemblage van samengestelde plaatwerkproducten en monodelen uit metaal. Onze klant werkt samen met het team aan de mooiste producten van de toekomst. Binnen dit bedrijf staat een sterk team van specialisten op het gebied van industrial design, mechanical engineering, in-house prototyping en all-round projectmanagement. Met daarbij uiteenlopende kennis in

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Front-end React developer

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Java Developer

Functie Wat ga je doen als Java developer? Jij komt terecht binnen een informeel team waarin je verantwoordelijk bent voor de backend systemen voor grote klanten als Ziggo en KPN. Als Medior Java developer werk je in teamverband en soms individueel. Gedurende de werkweek zal je veelvuldig sparren met je collega’s voor een goede implementatie van de software. Ben jij een echte Java developer? Ben je geïnteresseerd in de nieuwste technieken en de laatste ontwikkelingen? Dan ben je hier aan het juiste adres! Eisen Wat wordt er van jou verwacht? • Minimaal HBO/WO denk- en werkniveau; • Analytisch sterk, open

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda ben je als PHP/Symfony Developer niet alleen gefocust op het ontwikkelen van software. Daarnaast ben je voortdurend bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Hieronder een kort overzicht van jouw takenpakket: Het ontwerpen en implementeren van webapplicaties met het Symfony Framework; Het schrijven van een schone en efficiënte codes; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klant; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van IT Operations Manager! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van

Bekijk vacature »

Junior Fullstack Developer

Functie omschrijving Heb jij je universitair diploma Informatica afgerond en ben jij op zoek naar een startersfunctie waar jouw ontwikkeling in een hoog vaandel staat? Voor een softwarebedrijf in Amsterdam zijn wij op zoek naar een Junior Fullstack Developer. Je begint met een op maat gemaakte training om de kennis bij te spijkeren die jij nog mist. Uiteraard leer je het meeste tijdens je werk, maar de training geeft je hiervoor alvast de juiste handvatten. Je kunt het volgende verwachten! Jij ontwikkelt in technieken als Java, Javascript en SQL. Je werkt hierbij volgens de Agile/Scrum methode; Na het afronden van

Bekijk vacature »
Robert de Groot

Robert de Groot

24/04/2012 16:57:28
Quote Anchor link
Weet iemand een oplossing voor mijn onderstaande probleem? Ik heb namelijk een database die ongeveer als volgt is ingedeeld:

1. Kees - kees&hotmail.com - Groningen - ? - ?
2. Kees van Vliet - kees&hotmail.com - ? - 23-01-2010 - ?
3. Jan - [email protected] - Utrecht - ? - ?
4. Kees - kees&hotmail.com - Groningen - ? - Man

Uiteraard zijn er nog een aantal velden die komen na het laatste ? en is de hele database inmiddels bij 80.000 records. Ik wil graag de MySQL-database groepen op basis van e-mailadressen. Daarbij wil ik ook alle beschikbare gegevens dan van iemand tonen. Als ik bijvoorbeeld record 1 neem, weet ik niet zijn geboortedatum en geslacht, bij record 2 weet ik weer niet zijn woonplaats etc. terwijl we het wel over hetzelfde e-mailadressen spreken. Bovendien weet ik ook bij record 2 de achternaam van de persoon.

Weet iemand hier een oplossing voor met MySQL?
 
PHP hulp

PHP hulp

03/01/2025 16:31:19
 
Kris Peeters

Kris Peeters

24/04/2012 17:28:12
Quote Anchor link
Om te beginnen ... Wat is de bedoeling? Is het de bedoeling dat die SELECT query vaak wordt uitgevoerd, of wil je de records (indien nodig) samen smelten, om dan in een nieuwe/lege tabel te herbeginnen (maar dan met het vald email op UNIQUE)?

--------------------

GROUP BY zal de eerste gegevens nemen die het tegenkomt.

Maar wat wil je zelf doen, indien je tegenstrijdige data hebt?
Moet het "Kees" zijn, of "Kees van Vliet"? Hoe wil je dit automatiseren?



Wat je eventueel wel kan doen, is enkel de lege velden vervangen.
bv. als volgt:

- Je selecteert alle records. ORDER BY email (niet GROUP BY email). Dit zorgt er voor dat dubbels mooi naast mekaar staan, bij het fetchen

- dan kan je met php de ontbrekende gegevens invullen, in de
while($row = mysql_fetch_assoc($res)) { ...
lus.

Interesse in deze oplossing?
Iemand een beter idee?
Gewijzigd op 24/04/2012 17:28:58 door Kris Peeters
 
Robert de Groot

Robert de Groot

24/04/2012 17:35:37
Quote Anchor link
De bedoeling precies is om een CSV-bestand hiervan te genereren met daarin alle gegevens. Het liefst zou ik dit op MySQL-niveau willen en liever niet met PHP, al is het maar om de snelheid erin te houden. Het liefst wil ik de hoogste ID pakken, aangezien deze het compleetst waarschijnlijk is ingevuld. Er zitten nu namelijk checks op het formulier dat controleert of het allemaal goed is ingevuld.
 
Kris Peeters

Kris Peeters

24/04/2012 17:47:57
Quote Anchor link
Okay, fijn.

Ik ben geneigd je redenering niet te volgen, wat de snelheid betreft.
In principe moet je dit maar 1 keer echt uitvoeren. Who cares dat dit wat langer duurt?

Maar vooral: je zit met 80.000 records. Dit lijkt me vrij veel, qua virtueel geheugen. Ik denk dat je vlug "out of memory" gaat gaan.

Het is ook interessant dat je het naar file wil schrijven.
Je zou in schijven kunnen werken: gelijdelijk aan de csv-file genereren.
Iets wat op file staat, vereist geen virtueel geheugen.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

24/04/2012 19:32:47
Quote Anchor link
Ik weet niet of ik het helemaal goed begrijp, maar dit lijkt erop dat zodra een persoon zijn/haar gegevens wijzigt je een nieuw record in de tabel zet. Als dit zo is ben je niet goed bezig.
Gewijzigd op 24/04/2012 19:34:54 door Ger van Steenderen
 
Aad B

Aad B

24/04/2012 20:22:28
Quote Anchor link
GROUP BY is voor het groeperen van gegevens waarbij je een kolom sommmeert (SUM) telt (COUNT) en MIN MAX en dergelijke. GROUP BY is niet om te filteren en/of maar 1 record als resultaat te hebben. Helaas wordt dit vaak misbruikt en later worden het dan spaghetti resultaten. Je voert zoals Ger al zei je gegevens onjuist op, je INSERT misschien in plaats van UPDATE?? Zoek eens een tutorial hier over gegevensverwerking.
 
Kris Peeters

Kris Peeters

24/04/2012 20:53:04
Quote Anchor link
PS. even doorgaan op wat ik eerder zei ...
De reactie van Aad klopt ook.
Maar denk ook: de voornaamste reden waarom je deftig filtert op mySQL-niveau is om de data-trafiek database -> apache (php) zo klein mogelijk te houden.
Je hebt echter de data van alle records nodig. Dan kan je even goed een beetje minder energie steken in de sql query

-----

Ik heb iets uitgewerkt. (nogal quick & dirty, voorlopig)

Probeer dit al eens uit. Volgens mij doet dit al bijna wat je nodig hebt.

Best even testen op een aparte test-database
Ik stuur een sql export mee.

Dan nog exporteren naar csv ...


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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/*
CREATE TABLE IF NOT EXISTS users (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  username varchar(60) NOT NULL DEFAULT '',
  pass varchar(32) NOT NULL DEFAULT '',
  email varchar(64) DEFAULT '',
  mode tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (id)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8;

INSERT INTO users (id, username, pass, email, mode) VALUES
(2, 'wrupucicha', '7ca62315c9b9e0b46d7fb4aaf287bd30', 'wrupucicha@localhost', 0),
(3, 'tranubiwr', '', 'tranubiwr@localhost', 0),
(4, 'lonehesac', '72540b4a4eb73db2b1cd0d30b5e79cac', 'lonehesac@localhost', 0),
(5, 'buthiueph', '33330f42a4de4bee9c10b4f702fb8b9b', 'buthiueph@localhost', 0),
(6, 'speshigut', '2735cbc0677f66f6b5c8ef5ac009bd82', 'speshigut@localhost', 0),
(7, 'driswu', '11a97797dc59536a95949bb4f9d779b3', 'driswu@localhost', 0),
(8, 'kamecrolac', '77813980d48a32d642353fd8876ccf68', 'kamecrolac@localhost', 0),
(9, 'stiphislod', 'de6c1dbdd7c20b692516fdafc281bc59', 'stiphislod@localhost', 0),
(10, 'drukesh', '1ea73311475652082690252f4e0b8a4c', 'drukesh@localhost', 0),
(11, 'hemutihefro', 'bfa0c373b636831d3bd35f6a412011e5', 'hemutihefro@localhost', 0),
(12, 'buthiueph', '333b', 'buthiueph@localhost', 0),
(13, 'Tom', '', 'driswu@localhost', 0),
(14, 'Freddy', 'dcd0ff2c99c6b7f384e84e4304a27f98', 'tranubiwr@localhost', 0);
*/


$records = array();
$temp_record = null;
$max_records = 100;

$con = mysql_connect( 'localhost', 'root', '' );
mysql_select_db('phphulp');
 
$sql = "
  SELECT
  id, username, pass, email
  FROM users
  ORDER BY email, id DESC
"
;
$res = mysql_query($sql);

while ($row = mysql_fetch_assoc($res)) {
  add_record($row, $temp_record, $records);
}

  // save last record
  save_record($temp_record);

echo '<pre>' . print_r($records, TRUE) . '</pre>';

function
add_record($row, &$temp_record, &$records) {
  if (empty($temp_record)) {
    $temp_record = $row;
  }


  if ($row['email'] === $temp_record['email']) {
    // alle velden van $record overlopen, indien een veld leeg is, proberen we het veld uit $row te halen
    foreach ($temp_record as $key=>$field) {
      if ($key === 'email') {
        continue;
      }

      if (is_empty($field)) {
        $temp_record[$key] = $row[$key];
      }
    }
  }

  else {  // wwe hebben een nieuw record, met verschillend e-mail-adres.  Nu pas gaan we het vorige recors opslaan
    save_record($temp_record);
    $temp_record = $row;
  }

}

function
is_empty($string) {
  // ik zet het in een aparte functie.  Indien nodig kan dit gemakkelijk geoptimaliseerd worden
  return
    trim($string) === ''
    ? TRUE
    : FALSE;
}
function
save_record(&$record) {
  global $records;  // een beetje quick & dirty.   ... tja ...
  $records[count($records)] = $record;
}

?>
Gewijzigd op 24/04/2012 21:08:21 door Kris Peeters
 
Robert de Groot

Robert de Groot

25/04/2012 09:54:41
Quote Anchor link
Het liefst wil ik het PHP allemaal vermijden en al zorgen dat het uit MySQL goed wordt uitgelezen. Ik heb nu zelf een beetje een 'dirty' manier gevonden.

SELECT * , MAX( provincie ) , MAX( geboortejaar ) , MAX( geboortemaand ) , MAX( straat ) , max( nummer )
FROM `contacts`
WHERE optin = '1'
GROUP BY email
ORDER BY email

Op deze manier wordt dan gekeken of er bij het veld provincie iets is ingevuld. Als blijkt dat bijvoorbeeld bij 1 van de 5 maar Utrecht staat en de andere niets dan wordt Utrecht getoond. Ik ga er dan wel vanuit dat men dan niet bijvoorbeeld Utrecht en Groningen ingevuld heeft bij het veld provincie. Anders wordt het sowieso moeilijk controleren.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

25/04/2012 11:38:10
Quote Anchor link
Een contact hoort uniek te zijn in je tabel en niet voor één dezelfde 5 records, dan ben je helemaal fout bezig. Met andere woorden ga eerst eens normaliseren.
Gewijzigd op 25/04/2012 11:38:30 door Ger van Steenderen
 



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.