calcularea produsului elem dintr-o coloana - rezolvat

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori

ceteras
PHPRomania Supporter
Mesaje: 6
Membru din: Mie Dec 03, 2008 10:54 am

calcularea produsului elem dintr-o coloana - rezolvat

Mesajde ceteras » Mie Dec 03, 2008 11:00 am

Salutari,

Stie cineva cum se poate calcula produsul elementelor dintr-o coloana?

Adica, daca vreau suma, e SUM(x).
Din cate am vazut, nu exista o functie agregata pentru calcularea produsului.
Am cautat pe net si nu am gasit nimic, am incercat cate ceva, dar nu sunt prea incantat de rezultate.

Bineinteles cel mai lejer rezolvi cu un cursor, iei fiecare row si inmultesti valorile intr-o variabila.

Stie cineva alta solutie?
Ultima oară modificat Mie Dec 03, 2008 12:44 pm de către ceteras, modificat de 2 ori în total.



Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Mie Dec 03, 2008 11:07 am

Probabil nu e implementata o functie de selectie produs pentru ca probabilitatea de overflow este imensa (close to 100%) in cazul unei astfel de selectii. Nu cred ca ai alta varianta decat sa faci calculul pe partea de PHP.

ceteras
PHPRomania Supporter
Mesaje: 6
Membru din: Mie Dec 03, 2008 10:54 am

Mesajde ceteras » Mie Dec 03, 2008 11:25 am

din pacate, nu pot rezolva in php, trebuie sa rezolv strict in sql treaba asta.

pentru ce am eu nevoie, nu cred sa fie cazul de overflow, am de inmultit valori mici.

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Mie Dec 03, 2008 11:47 am

Te cred, insa priveste problema prin prisma unui programator MySQL: cum ar putea el sa implementeze un motor de tratare a unor overflow exceptions, cand overflow-ul poate aparea (la SELECT PRODUCT) in oricare din urmatoarele variante:
1. putine valori din campuri mari (INT, BIGINT, DOUBLE)
2. numar mediu de valori din campuri medii (MEDIUMINT, SMALLINT)
3. multe valori din campuri mici (de exemplu produsul a 500.000 de campuri de tip TINYINT).

Daca vrei neaparat pe partea de MySQL, altfel decat intr-o procedura stocata nu imi vine...

ceteras
PHPRomania Supporter
Mesaje: 6
Membru din: Mie Dec 03, 2008 10:54 am

Mesajde ceteras » Mie Dec 03, 2008 11:54 am

Iti multumesc pentru raspunsuri, m-ai lamurit.

Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Mie Dec 03, 2008 12:24 pm

schimba titlul topic-ului, pune [rezolvat] in loc de (se poate inchide).

Avatar utilizator
jianuovidiu
Senior Member
Mesaje: 516
Membru din: Joi Mar 16, 2006 8:48 pm
Contact:

Mesajde jianuovidiu » Joi Dec 04, 2008 12:13 am

Ultima oară modificat Joi Dec 04, 2008 12:35 am de către jianuovidiu, modificat 1 dată în total.

ceteras
PHPRomania Supporter
Mesaje: 6
Membru din: Mie Dec 03, 2008 10:54 am

Mesajde ceteras » Joi Dec 04, 2008 12:20 am


Avatar utilizator
mihaitha
Senior Member
Mesaje: 2383
Membru din: Vin Mai 04, 2007 12:40 pm
Localitate: Sibiu
Contact:

Mesajde mihaitha » Joi Dec 04, 2008 9:31 am

LOL ovidiu, excelenta abordare. Asta imi aduce aminte de aia cu 1 + 1 = 2...

//EDIT: acum cateva zile intreba cineva in sectiunea "Discutii diverse" daca lacunele in matematica ii afecteaza calitatea ca programator. Thread-ul asta demonstreaza ce ai putea pierde ;)

Avatar utilizator
Amenthes
Senior Member
Mesaje: 1370
Membru din: Lun Dec 12, 2005 8:00 am
Contact:

Mesajde Amenthes » Joi Dec 04, 2008 11:11 am

I'm under construction |

ebogdan
Senior Member
Mesaje: 218
Membru din: Joi Iul 27, 2006 2:45 pm
Localitate: Constanta

Mesajde ebogdan » Joi Dec 04, 2008 12:27 pm


Avatar utilizator
jianuovidiu
Senior Member
Mesaje: 516
Membru din: Joi Mar 16, 2006 8:48 pm
Contact:

Mesajde jianuovidiu » Joi Dec 04, 2008 1:06 pm


ceteras
PHPRomania Supporter
Mesaje: 6
Membru din: Mie Dec 03, 2008 10:54 am

Mesajde ceteras » Joi Dec 04, 2008 1:32 pm


ebogdan
Senior Member
Mesaje: 218
Membru din: Joi Iul 27, 2006 2:45 pm
Localitate: Constanta

Mesajde ebogdan » Joi Dec 04, 2008 2:29 pm

Ah, păi trebuia să spui că nu trebuie o soluție exactă. :P
Mie la calcularea produsului a 20 numere întregi între 1 și 10 mi-a dat 1.8059231232e+014, deci e clar că nu este exactă soluția, dar e ok pentru ce îți trebuie ție, după cum ai zis deja.

Și: felicitări Ovidiu!

Avatar utilizator
jianuovidiu
Senior Member
Mesaje: 516
Membru din: Joi Mar 16, 2006 8:48 pm
Contact:

Mesajde jianuovidiu » Joi Dec 04, 2008 2:36 pm



Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori