GROUP BY gegevens verzamelen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Node.js developer looking for a challenging consul

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Software Ontwikkelaar PHP

Functie omschrijving Software Ontwikkelaar PHP gezocht! Wij zijn op zoek naar een ervaren PHP Software Ontwikkelaar om het team van onze opdrachtgever te versterken! De ideale kandidaat zal fungeren als verlengstuk van klanten en complexe technische vraagstukken met enthousiasme benaderen. Naast het werken met de nieuwste technologieën, ben je in staat om aan meerdere projecten tegelijkertijd te werken. Als je deze uitdaging aangaat, werk je nauw samen met front-end developers en draag je bij aan het realiseren van grote veranderingen bij klanten. Het bedrijf zoekt iemand die zichzelf graag uitdaagt en altijd streeft naar het leveren van de beste resultaten.

Bekijk vacature »

Back end developer PHP

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 25 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

Front end developer binnen het onderwijs

Functie Het doel van dit team is om te zorgen dat de studenten altijd op de hoogte zijn van relevante informatie en de mogelijkheid hebben om online vragen te stellen. Hiervoor hebben ze een portal ontwikkeld. De app is echt een greenfield project met een eigen inrichting middels cloud. De ontwikkeling wordt gedaan door gebruik te maken van oa. Javascript, React, CSS, Next.js, GraphQL in een Azure Cloud omgeving. Daarnaast gebruiken ze tooling als Figma, storybook, Jest en Github. De complexiteit in deze rol zit hem in het feit dat data uit verschillende bronsystemen komt waarbij er zowel gekoppeld wordt

Bekijk vacature »

Fullstack Developer

Functieomschrijving Voor een erkende werkgever in regio Etten-Leur zijn wij op zoek naar een Fullstack Developer met PHP/Laravel ervaring. Je gaat aan de slag met het bouwen van maatwerk software voor klanten die actief zijn in een specifieke markt. Als fullstack developer ben je samen met een enthousiast team van 7 collega’s verantwoordelijk voor de ontwikkeling, beheer en innovatie van informatiesystemen voor klanten in een specifieke branche. Verder ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Ervaring met Laravel is een must. Om de klant zo goed mogelijk te

Bekijk vacature »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in

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

06/05/2024 01:26:02
 
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.