MySQL

2012-06-25 13 views
7

'da nasıl toplanır ve bölünür Tamam, bu yüzden bir kullanıcı masam var ve bir puan ile bölünen en yüksek puanı alan kullanıcı için maksimum değeri almak istiyorum. Aşağıda aradığım şeyin kaba fikirdir: Her iki sütun ve bölünmesi ekleyerek ilgilenmiyorumMySQL

SELECT MAX(SUM(points)/SUM(score)) FROM users 

, daha doğrusu ben noktaları bölünmesi ilgilendiğim ve her kullanıcı için skor ve lottan en yüksek değeri al.

+4

SELECT MAX (puan/puan) FROM kullanıcıları çalışmıyor mu? – thesunneversets

cevap

3

Belki bir alt sorgu ile yapabilirsiniz: Size ne muhtemelen

SELECT MAX(points/score) FROM users; 

için kısaltılabilir

Select max(points_over_Score) 
from 
    (Select points/score AS points_over_score 
    from users); 

Ve Bir yorumda thesunneversets olarak

, Sen yazılı konum açıklama' Yapmaya çalışmak, örneğinizin içinde neden SUM olduğunu açıklığa kavuşturmaz, bu yüzden kullanmadım.

Ayrıca, bu gibi kod soruları stackoverflow.com için daha uygundur. Bir moderatörün taşınmasını istemek için kendi sorunuzu işaretleyebilirsiniz.

+0

Aslında, bu mükemmel çalıştı. Hem puanları hem de puanları (TÜM noktalar ve puanlarda olduğu gibi) ekleyeceğini ve oradan gideceğini düşündüm ama istediğim gibi görünüyor. Son bir soru: Değeri ondalık formda nasıl alabilirim (sayı bir ondalığa gelirse?) –

+0

@Nick: Neyin mükemmel çalıştığı? – FrustratedWithFormsDesigner

+0

Gönderdiğiniz sorgu tam olarak istediğim gibi çalıştı. Bunun gibi bir sorgunun, her iki sütunun da eklenmesini ve puanların en yüksek puan/puan döndürmek yerine puanlara bölünmesi sonucunu döndüreceğini düşünmüştüm. Şimdi sadece sonuç ondalık ise, yuvarlanmaktan ziyade ondalık olarak dönecektir. –

0

Tüm puanları, ardından tüm puanları toplamanız ve ardından ikisini bölmeniz gerekiyorsa, Hayal kırıklığıWithFormsDesigner'ın yanıtı çalışmaz. Bu cevap her bir noktayı puanla ayırır, sonra en yüksek cevabı verir.

Bu çalışması gerekir:

SELECT MAX(sum_points/sum_score) from 
(SELECT SUM(points) as sum_points, SUM(score) as sum_score FROM users) 

BTW, bu bir "olağandışı" yüzdesini verir. Muhtemelen puanları noktalara ayırmak istersiniz. Örneğin, 100 üzerinden 70, yani% 70 veya puan (70)/puan (100) alırsanız.