Analyse van bezoekersaantallen in fitnessclubs Je werkt als analist bij een netwerk van fitnessclubs. Je hebt informatie over gebruikersbezoeken en de abonnementen die ze kopen. Het is nodig om de effectiviteit van het gebruik van abonnementen te analyseren. Bereken voor elk type abonnement: • het totale aantal gebruikers dat dit type abonnement heeft gebruikt. Alleen unieke user_id's overwegen; • het totale aantal bezoeken door dit abonnement. Alle bezoeken van gebruikers met dit abonnement overwegen; • het aandeel van gebruikers van dit abonnement in procenten van het totale aantal gebruikers (afgerond op één decimaal). Gebruik voor de berekening de verhouding tussen het aantal gebruikers met dit abonnement en het totale aantal unieke gebruikers. Elke gebruiker kan slechts één abonnement hebben. Sorteer het resultaat op alfabetische volgorde van het abonnements type. Invoerformaat Tabel memberships: • membership_id (int) — uniek identificatienummer van het abonnement • user_id (int) — uniek identificatienummer van de gebruiker • membership_type (text) — type abonnement Tabel visits: • visit_id (int) — uniek identificatienummer van het bezoek • user_id (int) — identificatienummer van de gebruiker • visit_date (timestamp) — datum en tijd van het bezoek De gegevens bevatten geen ontbrekende of onjuiste waarden. Uitvoerformaat De query moet een tabel retourneren met de volgende velden in deze volgorde: • membership_type (text) — type abonnement • users_count (int) — aantal unieke gebruikers met dit type abonnement • total_visits (int) — totaal aantal bezoeken van deze gebruikers • user_share (numeric) — aandeel van gebruikers van dit type abonnement in procenten van het totaal, afgerond op één decimaal De resultaten worden gesorteerd op alfabetische volgorde van het abonnements type.
Data Engineer
Bent u bekend met de methodologie Domain Driven Design (DDD)? Zo ja, deel voorbeelden van de toepassing ervan in uw projecten.
Hoe verwijder je een submodule en de bijbehorende bestanden uit het project? git submodule remove <pad-naar-submodule> git rm --cached <pad-naar-submodule>; verwijder de sectie uit .gitmodules; git commit git clean --submodules <pad> git submodule delete <pad> git remove submodule <pad>
Welke uitdrukking op de plaats van [...] leidt automatisch tot het aanmaken van een index? Op het mobiele platform is er een horizontale scroll van de code create table some_table( col_name [...] ); unique references other_table(col_name) not null serial integer check (col_name > 0)
Waarom zal de volgende query geen gebruik maken van de index als er een normale B-tree index op id is gemaakt in de tabel records? select * from records where id % 2 = 0 - Voor id is een GIN-type index nodig - Indexen werken niet met uitdrukkingen in WHERE - % is een vergelijking, geen filtering - limit en offset zijn verplicht voor indexoptimalisatie - De query verwijst naar een numeriek veld, niet naar een tekstveld
Tijdens het werken met git bisect kwam je een commit tegen die niet gecontroleerd kan worden vanwege het ontbreken van de benodigde omgeving. Wat moet je in deze situatie doen? - Herhaal de opdracht git bisect start met andere hashes - Sla deze commit over met de opdracht git bisect skip - Reset de bisect met de opdracht git bisect reset - Markeer de commit als goed met de opdracht git bisect good - Markeer de commit als slecht met de opdracht git bisect bad
Rapport voor logistiek bedrijf Je bent analist bij een logistiek bedrijf dat de operaties in magazijnen bijhoudt. Je moet een rapport opstellen over de efficiëntie van elk magazijn. Voor elk magazijn bereken: • het totale aantal operaties (count_operations); • het totale aantal verwerkte goederen in het magazijn (sum_quantity); • de gemiddelde verwerkingstijd van een operatie (avg_processing_time), alleen rekening houdend met operaties met een gespecificeerde tijd (niet NULL), afgerond op het dichtstbijzijnde gehele getal; • het maximale en minimale aantal goederen verwerkt in één operatie (max_quantity, min_quantity); • het aantal operaties van elk type («levering», «verzending», «transfers») in aparte kolommen: supply_operations, shipment_operations, transfer_operations. Filter de magazijnen waarvan het totale aantal operaties meer dan 2 is en de gemiddelde verwerkingstijd niet meer dan 60 minuten. Sorteer het resultaat op ID van het magazijn in oplopende volgorde. Invoerformaat Tabel operations: • operation_id (int) — uniek identificatienummer van de operatie • warehouse_id (int) — ID van het magazijn • operation_type (text) — type operatie: «levering», «verzending», «transfers» • quantity (int) — aantal eenheden van het product in de operatie • operation_date (timestamp) — datum en tijd van de operatie • processing_time (int) — verwerkingstijd van de operatie De kolom processing_time kan NULL-waarden bevatten. Uitvoerformaat De query moet een tabel retourneren met de velden in de volgende volgorde: • warehouse_id (int) — uniek ID van het magazijn • count_operations (int) — totaal aantal operaties uitgevoerd in het magazijn • sum_quantity (int) — totaal aantal verwerkte producten in het magazijn • avg_processing_time (numeric) — gemiddelde verwerkingstijd van de operatie (in minuten), alleen rekening houdend met operaties met niet NULL tijd, afgerond op het dichtstbijzijnde gehele getal • max_quantity (int) — maximale hoeveelheid producten verwerkt in één operatie • min_quantity (int) — minimale hoeveelheid producten verwerkt in één operatie • supply_operations (int) — aantal operaties van het type «levering» • shipment_operations (int) — aantal operaties van het type «verzending» • transfer_operations (int) — aantal operaties van het type «transfers»
Er is een speciale sequentie gemaakt genaamd even_sequence, die alleen even getallen genereert. Wat moet er op de plaats van [...] worden ingevuld zodat, indien de waarde van even_column niet is opgegeven bij het invoegen, de waarde wordt gehaald uit even_sequence? create table some_table( even_column [...] ); integer computed as nextval('even_sequence') integer generated always as identity (start with 2 increment by 2) integer default nextval('even_sequence') integer unique default nextval('even_sequence') integer generated by even_sequence’
Leg uit hoe Git LFS technisch werkt en welke voordelen het biedt ten opzichte van standaard Git bij het werken met grote bestanden.
Heeft u ervaring met de bibliotheek Langchain? Welke taken hebt u ermee opgelost?
Wat zou je graag willen doen in ons team?
Je maakt een overzicht dat alle gebruikers toont en, indien aanwezig, hun laatste bestellingen. Tabellen: users(id, name) en orders(id, user_id, created_at). Welke join-typ moet worden gebruikt zodat ook gebruikers zonder bestellingen worden weergegeven? CROSS JOIN RIGHT JOIN INNER JOIN FULL JOIN LEFT JOIN
Hoe raadt Git Flow aan om een nieuwe release van de applicatie te formaliseren? - Door een nieuwe issue-branch te maken - Door een hotfix-branch vanaf master te maken - Door een aparte release-branch vanaf develop te maken - Door direct te committen op de master-branch - Door de master-branch rechtstreeks samen te voegen met develop
Welke van de volgende uitspraken weerspiegelt de gevolgen van dergelijke acties vanuit het perspectief van de uitgebreide Git Flow-methodologie en het beheer van de wijzigingsgeschiedenis?
Je hebt ontdekt dat er in de geschiedenis van de hoofd-Git-repository commits aanwezig zijn die kritieke vertrouwelijke gegevens bevatten. Deze gegevens moeten volledig uit de hele geschiedenis van de repository worden verwijderd. Evalueer hoe correct en veilig het zou zijn om de volgende strategie te gebruiken: een nieuwe commit maken die de vertrouwelijke gegevens uit de huidige versie van de bestanden verwijdert en deze naar main te pushen. - Correct, maar niet optimaal. Het is beter om git revert te gebruiken om commits ongedaan te maken - Conditieel correct. Dit is een tijdelijke oplossing totdat een meer radicale methode om de gegevens te verwijderen wordt gevonden - Onjuist en onveilig. De gegevens worden verwijderd uit de huidige versie, maar blijven toegankelijk in de geschiedenis van de repository - Onjuist. Deze commit kan leiden tot nieuwe conflicten bij het samenvoegen met andere branches - Correct en veilig. Deze methode garandeert dat de gegevens worden verwijderd en niet meer in de repository verschijnen
Je werkt aan een nieuwe functie in de dev-branch. Plotseling is het nodig om snel over te schakelen naar de main-branch om een spelfout in README.md snel te corrigeren. Je hebt enkele niet-gecommitete wijzigingen: in src/feature.js (niet gestaged) en styles/main.css (gestaged). Je wilt al deze wijzigingen tijdelijk opslaan zodat je later terug kunt keren naar de dev-branch. Welke reeks commando's moet je hiervoor gebruiken? git stash save "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash push -m "WIP on feature" && git checkout main && [fix] && git checkout dev && git stash pop git stash && git checkout main && [fix] && git checkout dev && git stash apply git add . && git stash && git checkout main && [fix] && git checkout dev && git stash drop git commit -m "Temp commit" && git checkout main && [fix] && git checkout dev && git reset HEAD^
Verkoopanalyse per productcategorie in een detailhandel Je werkt als analist in een detailhandel. Jouw taak is het opstellen van een verkooprapport per categorie met de volgende berekeningen: • totaal aantal verkochte eenheden in de categorie (total_units_sold); • totale omzet per categorie, rekening houdend met kortingen, waarbij de korting wordt berekend als unit_price × units_sold × (1 − discount/100). Als er geen korting is (NULL), wordt 0% aangenomen. Afronden op twee decimalen; • gemiddelde aantal verkochte eenheden per verkoop (avg_units_per_sale), afgerond op twee decimalen; • aandeel van verkopen zonder korting (no_discount_share) — aantal verkopen met NULL of 0% korting, gedeeld door het totale aantal verkopen in de categorie, afgerond op drie decimalen. Sorteer eerst op de totale omzet (total_revenue) in aflopende volgorde, daarna op het gemiddelde aantal eenheden per verkoop (avg_units_per_sale) in oplopende volgorde, en ten slotte op de naam van de categorie in alfabetische volgorde. Invoerformaat Tabel sales: • sale_id (int) — unieke verkoop-ID • product_id (int) — product-ID • category (text) — productcategorie • sale_date (timestamp) — datum en tijd van verkoop • units_sold (int) — verkochte eenheden • unit_price (numeric) — prijs per eenheid • discount (numeric) — korting in procenten, kan NULL zijn De kolom discount kan NULL-waarden bevatten. Uitvoerformaat De query moet een tabel retourneren met de velden in deze volgorde: • category (text) — productcategorie • total_units_sold (int) — totaal aantal verkochte eenheden in deze categorie • total_revenue (numeric) — totale omzet per categorie, afgerond op twee decimalen • avg_units_per_sale (numeric) — gemiddelde aantal eenheden per verkoop, afgerond op twee decimalen • no_discount_share (numeric) — aandeel van verkopen zonder korting (waarde tussen 0 en 1), afgerond op drie decimalen Het resultaat wordt eerst gesorteerd op total_revenue in aflopende volgorde, daarna op avg_units_per_sale in oplopende volgorde, en ten slotte op de naam van de categorie in alfabetische volgorde.
[naam] heeft fouten en stijl in de tekst gecorrigeerd: «Hallo! Ik ben [naam], je hebt eerder gevraagd over te stappen naar Telegram» — op een informele, maar respectvolle manier
Heeft u ervaring met het web-framework Gin? Vertel ons meer in detail over de taken die u ermee hebt opgelost.
Deel van botverkeer Het anti-fraude team heeft een mechanisme ontwikkeld om botverkeer op de winkelwebsite te detecteren: wanneer een bot de site betreedt, wordt de substring "bot" (zonder onderscheid tussen hoofd- en kleine letters) toegevoegd aan de URL-parameters. Als de user_id in december minstens één keer als bot is geïdentificeerd, moet deze altijd als bot worden beschouwd. Bestudeer de dataset met gebruikersbezoeken aan de site en bereken het aandeel van bots ten opzichte van het totale aantal gebruikers in december 2024 (afronden op één decimaal). Invoerformaat Tabel visits: - event_date (date) — datum van het bezoek - user_id (int) — unieke identificatie van de gebruiker - url (string) — link waarop het bezoek is gedaan De gegevens bevatten geen ontbrekende of onjuiste waarden. Uitvoerformaat De query moet een tabel retourneren met de velden: - share (float) — aandeel van bots ten opzichte van het totale aantal gebruikers in december, afgerond op één decimaal.