Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Verwijderd
1
| SELECT COUNT(DISTINCT uc.user_id) as total FROM xs2media_users_categories as uc GROUP by uc.categorie_id |
Dit is in mssql mogelijk als ik het goed heb, of dit in mysql ook mag weet ik niet.
En hoe levert dat precies het door hem gewenste resultaat op?Verwijderd schreef op zondag 20 maart 2011 @ 11:50:
Zoiets:
[...]
Dit is in mssql mogelijk als ik het goed heb, of dit in mysql ook mag weet ik niet.
Dus als iemand lid is van categorie 1 en van categorie 2, dan wil je dat ie in totaal 1x geteld wordt en niet bij beide los?ZpAz schreef op zondag 20 maart 2011 @ 11:37:
Maar nu wil ik graag dat als een gebruiker lid is van meerdere categorieën hij maar één keer wordt meegeteld voor de eerste categorie waar hij lid van is, en daarna niet meer mee wordt geteld bij de andere categorieën.
Hoe moet ik dat aanpakken?
Hoe zou je willen bepalen welke categorie degene is waar ie bij geteld moet worden? SQL heeft geen 'volgorde' voor de record, dus als jij niet opslaat welke categorie de eerste is, dan kan wordt het heel lastig hier iets voorspelbaars bij te maken.
[ Voor 8% gewijzigd door ACM op 20-03-2011 11:54 ]
Dus dan kijkt hij naar unieke personen per group by (dus als een persoon vaker lid zou zijn van één categorie, dan verschijnt hij bij die categorie maar één keer). Maar ik wil graag dat hij maar in één categorie komt.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
En wat is jouw definitie van 'eerste categorie'?ZpAz schreef op zondag 20 maart 2011 @ 11:37:
Maar nu wil ik graag dat als een gebruiker lid is van meerdere categorieën hij maar één keer wordt meegeteld voor de eerste categorie waar hij lid van is, en daarna niet meer mee wordt geteld bij de andere categorieën.
Verwerk die definitie in je oorspronkelijke query en je bent klaar.
{signature}
Laten we dat als voorbeeld nemen, de categorie met de laagste id, dat dat de eerste is. Ik bak het zelf daarna wel om.Voutloos schreef op zondag 20 maart 2011 @ 11:54:
DISTINCT helpt niet, lees de vraag nog maar een keer.
[...]
En wat is jouw definitie van 'eerste categorie'?
Verwerk die definitie in je oorspronkelijke query en je bent klaar.Is het bijvoorbeeld 'de categorie met laagste id', dan kan je een subquery gebruiken welke controleert dat userid niet in een andere row met lager categorie id voorkomt.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
En eens met cheatah, dikke kans dat je gebruikers niet weten hoe ze de resulterende data moeten interpreteren...
[ Voor 39% gewijzigd door Voutloos op 20-03-2011 11:58 ]
{signature}
De 'laagste id' (of hoogste) is de enige die je zonder wijzigingen aan je tabel aan te passen kan doenZpAz schreef op zondag 20 maart 2011 @ 11:54:
Laten we dat als voorbeeld nemen, de categorie met de laagste id, dat dat de eerste is. Ik bak het zelf daarna wel om.
Maar dan krijg je zoiets:
1
2
3
4
| select firstcategoryid, count(*) from (select userid, min(categoryid) as firstcategoryid from usercategories group by userid) as firstusers group by firstcategoryid |
De meesten zullen niet zo gauw een subquery erbij in weten te verzinnenVoutloos schreef op zondag 20 maart 2011 @ 11:55:
Nou, dan kan je het meteen zelf om gaan bakken, want de query heb ik al helemaal voorgekauwd.
[ Voor 20% gewijzigd door ACM op 20-03-2011 11:57 ]
Verwijderd
Als adverteerder kan je aangeven onder welke categorieen je advertentie valt. Hier kan hij dus ook meerdere kiezen. Maar om er voor te zorgen dat de ontvanger (als hij lid is van meedere categorieen die gekozen zijn door de adverteerder) niet het smsje vaker krijgt wil ik dat hij maar één keer wordt gekozen.
De bovenstaande query is dan om uit te rekenen naar hoeveel personen het smsje wordt gestuurd (voor de adverteerder) en wat de kosten hiervoor voor hem zijn.
Nu snap ik niet helemaal wat je hiermee bedoelt, maar misschien maakt mijn bovenstaande tekst het één en ander duidelijk.En eens met cheatah, dikke kans dat je gebruikers niet weten hoe ze de resulterende data moeten interpreteren...
Dat is inderdaad wat ik zoek.ACM schreef op zondag 20 maart 2011 @ 11:57:
Maar dan krijg je zoiets:
SQL:
1 2 3 4 select firstcategoryid, count(*) from (select userid, min(categoryid) as firstcategoryid from usercategories group by userid) as firstusers group by firstcategoryid
De categorie_id refereert naar een rij in een andere tabel waarin informatie staat ik neem aan dat ik dmv joins gewoon op basis van die informatie kan 'sorteren' (ipv hoogste of laagste).De 'laagste id' (of hoogste) is de enige die je zonder wijzigingen aan je tabel aan te passen kan doen
[ Voor 36% gewijzigd door ZpAz op 20-03-2011 12:07 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Je kan het proberen. Officieel is er geen 'first' aggregate-functie, MySQL doet het in hun non-sql-compatible mode wel, dus je kan sorteren op de goede volgorde en dan in je selectlist 'userid, categoryid' doen (zonder aggregate-functie, wat dus eigenlijk ongeldige sql is) en dan domweg dezelfde group by en een order by op de sorteervelden.ZpAz schreef op zondag 20 maart 2011 @ 12:00:
Dat is inderdaad wat ik zoek.
[...]
De categorie_id refereert naar een rij in een andere tabel waarin informatie staat ik neem aan dat ik dmv joins gewoon op basis van die informatie kan 'sorteren' (ipv hoogste of laagste).
Dat is dus een licht vieze versie die waarschijnlijk het minste werk is, of ie altijd de goede resultaten geeft is dan wel wat minder goed te voorspellen.
De officiele versie wordt wat complexer omdat je uiteindelijk per gebruiker 'de eerste' categorie moet zien te achterhalen. Dat kan vast wel met wat joins en diepere subselects, maar ik zou ook dan al gauw weer een 'limit 1' erbij zetten in zulke subselects
1
2
3
| SELECT categorie_id, count(categorie_id) AS users FROM (SELECT UC.categorie_id, C.name, max(C.staffel) AS staffel FROM xs2media_users_categories AS UC, xs2media_categories AS C WHERE C.id = UC.categorie_id GROUP BY UC.user_id) AS main_categories GROUP BY categorie_id |
Ty
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
MySQL gaat hierin juist wel mee met de standaard die voorschrijft dat je aggregate functions moet gebruiken voor alle velden in de select list tenzij ze functioneel van elkaar afhankelijk zijn. Andere DBMS'en hebben dat nooit ondersteund, vermoedelijk omdat het behoorlijk uitnodigt to het maken van fouten zoals we hier ook zo vaak terugzien in de vele topics waar het fout wordt toegepast. MySQL ondersteunt de standaard dus juist wél op dit punt.ACM schreef op zondag 20 maart 2011 @ 12:17:
[...]
Je kan het proberen. Officieel is er geen 'first' aggregate-functie, MySQL doet het in hun non-sql-compatible mode wel, dus je kan sorteren op de goede volgorde en dan in je selectlist 'userid, categoryid' doen (zonder aggregate-functie, wat dus eigenlijk ongeldige sql is) en dan domweg dezelfde group by en een order by op de sorteervelden.
Dat is dus een licht vieze versie die waarschijnlijk het minste werk is, of ie altijd de goede resultaten geeft is dan wel wat minder goed te voorspellen.
Ik gebruik het zelf zo weinig mogelijk maar af en toe maak ik bewust de keuze om het toe te passen en zo mijn query performanter te maken.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Zou het ook niet mogelijk zijn om een tmp-table (user_id, category_id) te maken met category_id gelimiteerd tot de categorieën die je wilt hebben. Vervolgens met een COUNT(DISTINCT user_id) de unieke gebruikers tellen. Dat je dan zoiets krijgt:
1
2
3
4
5
6
| SELECT COUNT(DISTINCT T.user_id) FROM (SELECT user_id, category_id FROM xs2media_users_categories WHERE category_id IN( 1,2,3 ) ) as T |
Voor zover ik zie zijn hier geen performance issues (want je hebt toch index op user_id en category_id). Of sla ik de plank hier behoorlijk mis?
Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.
Maar op welke manier gaat deze query je dan helpen? Als pietje in cat 1 2 en 3 zit, adverteerder kiest 2 en 3 dan wordt pietje niet meegeteld omdat hij al bij 1 meegeteld was.ZpAz schreef op zondag 20 maart 2011 @ 12:00:
Als adverteerder kan je aangeven onder welke categorieen je advertentie valt. Hier kan hij dus ook meerdere kiezen. Maar om er voor te zorgen dat de ontvanger (als hij lid is van meedere categorieen die gekozen zijn door de adverteerder) niet het smsje vaker krijgt wil ik dat hij maar één keer wordt gekozen.
Het lijkt me dat je beter je eigen verhaaltje nog eens kunt lezen en op basis daarvan een query maken. Selecteer alle unieke gebruikers die in dit setje van categorieen zit. GROEP BY weg en een IN erbij en klaar.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Ik zou de query kunnen gebruiken met 'limieten' op de geselecteerde query (where categorie_id=y OR categorie_id=x). Denk dat dat wel zou moeten werken.Janoz schreef op maandag 21 maart 2011 @ 11:51:
[...]
Maar op welke manier gaat deze query je dan helpen? Als pietje in cat 1 2 en 3 zit, adverteerder kiest 2 en 3 dan wordt pietje niet meegeteld omdat hij al bij 1 meegeteld was.
Het lijkt me dat je beter je eigen verhaaltje nog eens kunt lezen en op basis daarvan een query maken. Selecteer alle unieke gebruikers die in dit setje van categorieen zit. GROEP BY weg en een IN erbij en klaar.
edit:
Maar wat als de adverteerder nog geen categorie heeft geselecteerd, dan werkt het niet goed. Want dan zijn er 'minder leden' per categorie, en als hij het wel selecteerd kan het ineens anders zijn...
Hier moet ik nog maar eens over nadenken.
[ Voor 16% gewijzigd door ZpAz op 21-03-2011 20:09 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Meer details boeien niet, of als iemand tijd te veel heeft kan hij een uur met de selectie spelen.
{signature}
Kijk nog eens naar mijn query in wizzkizz in "Mysql - Geabonneerde gebruiker maar één ...".Volgens mij doet dit precies wat je wilt namelijk en het is ook wat Janoz zegt. Je haalt namelijk alle gebruikers op die lid zijn van een bepaalde categorie (of 2, of 3 of n categorieën) en bepaalt vervolgens van die selectie hoeveel unieke gebruikers het zijn. Geef je 1 categorie op werkt dat ook.ZpAz schreef op maandag 21 maart 2011 @ 20:00:
edit:
Maar wat als de adverteerder nog geen categorie heeft geselecteerd, dan werkt het niet goed. Want dan zijn er 'minder leden' per categorie, en als hij het wel selecteerd kan het ineens anders zijn...
Hier moet ik nog maar eens over nadenken.
Met die query kun je vervolgens doen wat Voutloos zegt en mij ook de way to go lijkt.
Gegeven de case die je aangeeft, voldoet het imho aan je eisen voor het selecteren van de (aantallen) gebruikers.
[ Voor 4% gewijzigd door wizzkizz op 21-03-2011 22:05 ]
Make it idiot proof and someone will make a better idiot.
Real programmers don't document. If it was hard to write, it should be hard to understand.
Volgens mij is de eenvoud van de aangedragen oplossing het probleem voor de TS omdat zijn specs nog in de knoop zitten. Wat kost immers een smsje naar een gebruiker ingeschreven in categorie A (kost a) en categorie B (cost b) (er van uit gaande dat de adverteerder beide categorien wil aanspreken; anders is er immers geen telprobleem)? Ik zie overigens een opportuniteit in het concept:Voutloos schreef op maandag 21 maart 2011 @ 21:44:
Eigenlijk doe je gewoon moeilijk.Toon bij alle categorieën het aantal gebruikers, en vervolgens over de gehele selectie een enkel total van het aantal verschillende gebruikers. Klaar.
Meer details boeien niet, of als iemand tijd te veel heeft kan hij een uur met de selectie spelen.
- aanrekenen categorien zonder rekening te houden met het "unieke gebruikers" probleem
- verzenden sms naar gebruikers volgens goedkoopste categorie
Moet ik misschien pattenteren ;-)
Het is de bedoeling dat het aan de hand van de duurste categorie gaat. Heb het momenteel zo: http://cl.ly/5QW5- verzenden sms naar gebruikers volgens goedkoopste categorie
Als je categorieën selecteert dan verschijnt de tabel eronder met de prijzen. Alleen selecteert hij nu op verkeerde waardes (fruit is immers goedkoper als studenten), heb nu 4 proefleden die alle 4 lid zijn van zowel studenten als fruit.
De query die gebruikt wordt is:
1
| SELECT categorie_id, count(categorie_id) AS users FROM (SELECT UC.categorie_id, C.name, max(C.staffel) AS staffel FROM xs2media_users_categories AS UC, xs2media_categories AS C WHERE C.id = UC.categorie_id AND (C.id='2' OR C.id='11' ) GROUP BY UC.user_id) AS main_categories GROUP BY categorie_id |
Maar als ik de subquery uitvoer (daar zit sowieso al een fout in (klikje) wordt elke 'staffel' 11 (die van studenten). Hoe hoger de staffel, hoe duurder het smsje.
Volgens mij krijg ik nu één waarde terug met het aantal unieke personen over meerdere categorieën, niet helemaal wat ik zoek. Elke categorie heeft een eigen prijs, dus ik kan niet totaal aantal personen * prijs doen over meerdere categorieën.code:
1 2 3 4 5 6SELECT COUNT(DISTINCT T.user_id) FROM (SELECT user_id, category_id FROM xs2media_users_categories WHERE category_id IN( 1,2,3 ) ) as T
edit:
Met de volgende query:
1
| SELECT max(C.staffel), C.name FROM xs2media_categories AS C |
Verwacht ik dat hij een C.name pakt die bij de C.staffel hoort, maar dat doet hij niet? Hij pakt wel de hoogste staffel uit de tabel, maar de eerste name uit de tabel, terwijl die niet de hoogste staffel heeft.
Het resultaat van de query is namelijk:

Terwijl de tabel inhoud is:

Ik zou als uitkomst dan verwachten - 11 Studenten. Immers is dat de eerste hit met de 'max' staffel.
edit2: Deze link legt dat uit, eens kijken. http://www.plus2net.com/sql_tutorial/sql_max.php
[ Voor 46% gewijzigd door ZpAz op 22-03-2011 11:03 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Hij heeft ook name enerzijds en staffel anderzijds, dus echt voor een taal kiezen is er toch niet bij.roy-t schreef op dinsdag 22 maart 2011 @ 11:57:
(klein puntje, het enkelvoud van categories is category).
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Ik weet niet eens wat een staffel is, tenminste enkel in dit project nu. En had er nog nooit van gehoord, maar inderdaad, de naamgeving is niet je van het.NMe schreef op dinsdag 22 maart 2011 @ 12:50:
[...]
Hij heeft ook name enerzijds en staffel anderzijds, dus echt voor een taal kiezen is er toch niet bij.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
Mij is niet duidelijk wat je precies stelt dat de SQL-specificatie voorschrijft en in hoeverre MySQL dat ondersteund? Helaas is de SQL-specificatie zo onleesbaar geschreven, dat ik geen flauw idee heb waar ik eenvoudig kan lezen hoe een select-list icm een group-by moet werken...NMe schreef op maandag 21 maart 2011 @ 11:23:
MySQL gaat hierin juist wel mee met de standaard die voorschrijft dat je aggregate functions moet gebruiken voor alle velden in de select list tenzij ze functioneel van elkaar afhankelijk zijn. Andere DBMS'en hebben dat nooit ondersteund, vermoedelijk omdat het behoorlijk uitnodigt to het maken van fouten zoals we hier ook zo vaak terugzien in de vele topics waar het fout wordt toegepast. MySQL ondersteunt de standaard dus juist wél op dit punt.
Maar vziw is dit incorrect SQL:
1
| SELECT a, b FROM tabel GROUP BY a |
En als ik MySQL zelf mag geloven is dat inderdaad een afwijking:
Bovenstaande query levert je in PostgreSQL een foutmelding op, maar in MySQL een resultaatset waarbij je voor elke unieke a 'een b' (meestal de eerste die ie tegenkwam) ziet.MySQL extends the use of GROUP BY to permit selecting fields that are not mentioned in the GROUP BY clause.
Ik weet niet wat jij bedoeld met 'functioneel van elkaar afhankelijk'? Zoiets wellicht?
1
| SELECT a, b, a+b as c FROM tabel GROUP BY a, b |
Dat is inderdaad wel geldige SQL en wordt ook toegelaten in PostgreSQL.
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Ah, op die manier. Je zou in theorie bij een PK-group dus alle non-pk velden weg kunnen laten omdat die functioneel afhankelijk zijn van de PK.
Desalniettemin is dat niet relevant voor deze situatie. De categoryid's waren juist wel allemaal verschillend en niet functioneel afhankelijk van de grouped kolom, en de 'eerste die je tegenkomt gebruiken'-situatie is iets dat MySQL dus wel met hun afwijkend gedrag (niet standaard conformerend in dit geval
Ik heb dat artikel vaker gezien door de jaren en moet er nog altijd van grinniken. In short: "hoi we weten dat onze functionaliteit extreem kut en slecht is maar we gaan nu een banaan proberen recht te praten omdat onze fundamentele designbug in extreem uitzonderlijke gevallen wel acceptabele en standaardconforme resultaten oplevert".
Ook leuk dat ze specifiek met Oracle vergelijken en vingerwijzen omdat die geen heldere foutmelding geeft, en ze dus beter fundamenteel fout gedrag kunnen toestaan. MS SQL Server geeft al een jaar of 10:
Hoezo onduidelijke foutmeldingen?Msg 8120, Level 16, State 1, Line 1
Column 'Table.ColumnName' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
[ Voor 29% gewijzigd door curry684 op 24-03-2011 12:19 ]
Niet handig lijkt me, wel leuk voor de adverteerders. Ik begrijp dat een gebruiker zich op meerdere groepen in kan schrijven, maar wat is dan duurste categorie?ZpAz schreef op dinsdag 22 maart 2011 @ 10:21:
[...]
Het is de bedoeling dat het aan de hand van de duurste categorie gaat. Heb het momenteel zo: http://cl.ly/5QW5
Als je categorieën selecteert dan verschijnt de tabel eronder met de prijzen. Alleen selecteert hij nu op verkeerde waardes (fruit is immers goedkoper als studenten), heb nu 4 proefleden die alle 4 lid zijn van zowel studenten als fruit.
Daarbij is het dan ook nog eens zo als je een advertentie aan 3 categorieën hebt hangen, waarin heel verschillende gebruikers (niet 1 gebruiker hetzelfde) en de totalen gebruikers per categorie liggen zo:
- Cat1: 90
- Cat2: 89
- Cat3: 91
Dan heeft degene die de sms wil versturen dus feitelijk 270 sms'jes voor de prijs van 91. Iets zegt mij dat hier geen rekening mee is gehouden in je businessmodel.
Tevens ga ik ervanuit dat een adverteerder zelf aangeeft in welke categorieën hij/ zij wil adverteren met een bepaalde advertentie? Omdat ik als adverteerder per categorie kan zien hoeveel gebruikers, kan ik heel diverse categorieën kiezen, om zodoende een grotere groep verschillende mensen te bereiken, voor een redelijk lage prijs.
Elke categorie een eigen prijs is ook niet eerlijk, omdat je bijna niet feitelijk denk ik dat je moet kijken naar het totale bereik van een advertentie/ adverteerder, deze bepaal je inderdaad door het "totaal aantal unieke gebruikers" in de groep categoriën van de sms.ZpAz schreef op dinsdag 22 maart 2011 @ 10:21:
[...]
De query die gebruikt wordt is:
code:
1 SELECT categorie_id, count(categorie_id) AS users FROM (SELECT UC.categorie_id, C.name, max(C.staffel) AS staffel FROM xs2media_users_categories AS UC, xs2media_categories AS C WHERE C.id = UC.categorie_id AND (C.id='2' OR C.id='11' ) GROUP BY UC.user_id) AS main_categories GROUP BY categorie_id
Maar als ik de subquery uitvoer (daar zit sowieso al een fout in (klikje) wordt elke 'staffel' 11 (die van studenten). Hoe hoger de staffel, hoe duurder het smsje.
[...]
Volgens mij krijg ik nu één waarde terug met het aantal unieke personen over meerdere categorieën, niet helemaal wat ik zoek. Elke categorie heeft een eigen prijs, dus ik kan niet totaal aantal personen * prijs doen over meerdere categorieën.
edit:
Met de volgende query:
code:
1 SELECT max(C.staffel), C.name FROM xs2media_categories AS C
Verwacht ik dat hij een C.name pakt die bij de C.staffel hoort, maar dat doet hij niet? Hij pakt wel de hoogste staffel uit de tabel, maar de eerste name uit de tabel, terwijl die niet de hoogste staffel heeft.
Het resultaat van de query is namelijk:
[afbeelding]
Terwijl de tabel inhoud is:
[afbeelding]
Ik zou als uitkomst dan verwachten - 11 Studenten. Immers is dat de eerste hit met de 'max' staffel.
edit2: Deze link legt dat uit, eens kijken. http://www.plus2net.com/sql_tutorial/sql_max.php
Mij lijkt het ook handiger als je een soort van "korting" geeft op sms-jes als men naar meerdere gebruikers in 1 maal wil sms-en.
Bijv: - 100 sms'jes, 5 euro, 200 sms'jes 9 euro enz.... Dat lijkt me pretttiger en eenduidiger voor iedereen.
Ik zal niet zeggen dat ik het vaak gebruik, maar ik heb het in het verleden wel eens toegepast (voor privéprojectjes, don't worrycurry684 schreef op donderdag 24 maart 2011 @ 12:14:
[...]
Ik heb dat artikel vaker gezien door de jaren en moet er nog altijd van grinniken. In short: "hoi we weten dat onze functionaliteit extreem kut en slecht is maar we gaan nu een banaan proberen recht te praten omdat onze fundamentele designbug in extreem uitzonderlijke gevallen wel acceptabele en standaardconforme resultaten oplevert".
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Nee, ik wil juist het unieke aantal ingeschreven personen hebben. Als die 90, 89 en 91 allemaal uniek zijn zal er voor 270 smsjes betaald worden. Maar als cat3 bijvoorbeeld 10ct per sms kost en Cat2 15ct per sms, dan zal er dus 91*10ct + 89*15ct betaald moeten worden.jbdeiman schreef op donderdag 24 maart 2011 @ 12:23:
[...]
Niet handig lijkt me, wel leuk voor de adverteerders. Ik begrijp dat een gebruiker zich op meerdere groepen in kan schrijven, maar wat is dan duurste categorie?
Daarbij is het dan ook nog eens zo als je een advertentie aan 3 categorieën hebt hangen, waarin heel verschillende gebruikers (niet 1 gebruiker hetzelfde) en de totalen gebruikers per categorie liggen zo:
- Cat1: 90
- Cat2: 89
- Cat3: 91
Dan heeft degene die de sms wil versturen dus feitelijk 270 sms'jes voor de prijs van 91. Iets zegt mij dat hier geen rekening mee is gehouden in je businessmodel.
Als iemand dan lid is van zowel cat2 als 3, dan zal er voor de duurste betaald moeten worden (15ct).
Zie mijn bovenstaande, daarnaast worden de smsjes eerst ook nog gecontroleerd voordat ze verzonden worden.Tevens ga ik ervanuit dat een adverteerder zelf aangeeft in welke categorieën hij/ zij wil adverteren met een bepaalde advertentie? Omdat ik als adverteerder per categorie kan zien hoeveel gebruikers, kan ik heel diverse categorieën kiezen, om zodoende een grotere groep verschillende mensen te bereiken, voor een redelijk lage prijs.
Het is niet mijn project en dit zijn de wensen die ik doorgespeeld kreeg. Ik had er al met de persoon over gepraat, maar dit is wat ie wil.Elke categorie een eigen prijs is ook niet eerlijk, omdat je bijna niet feitelijk denk ik dat je moet kijken naar het totale bereik van een advertentie/ adverteerder, deze bepaal je inderdaad door het "totaal aantal unieke gebruikers" in de groep categoriën van de sms.
Mij lijkt het ook handiger als je een soort van "korting" geeft op sms-jes als men naar meerdere gebruikers in 1 maal wil sms-en.
Bijv: - 100 sms'jes, 5 euro, 200 sms'jes 9 euro enz.... Dat lijkt me pretttiger en eenduidiger voor iedereen.
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
edit: Sorry, dubbelpost, mag gemerged worden als dat kan.
[ Voor 14% gewijzigd door ZpAz op 24-03-2011 20:16 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF