2013-06-13 2 views
0

первый: да я нуб SQL и я действительно нужна помощь:SQL вложен граф

SELECT COUNT(id), SUM(rating), COUNT(rating) FROM comments WHERE phone='$phone';" 

это должно быть что-то вроде этого:

SELECT COUNT(id), SUM(rating), (COUNT(rating) WHERE rating>0) FROM comments WHERE phone='$phone';" 

Может кто-нибудь помочь?

+0

Почему вы не попробовать добавить требуемое 'WHERE' пункт для фактические предложения WHERE? –

+0

вот так: 'SELECT COUNT (id), SUM (рейтинг), COUNT (рейтинг) FROM comments WHERE phone = '$ phone' AND rating> 0;' ?? – x4rf41

+0

Возможно, он хочет, чтобы предложение «HAVING» с 'HAVING COUNT (рейтинг)> 0' ... – Brewal

ответ

0

Вы можете использовать сазе в COUNT: -

$query = "SELECT COUNT(id), SUM(rating), (SUM(CASE WHEN rating > 0 THEN 1 ELSE 0 END)) 
FROM comments 
WHERE phone='$phone'"; 
+0

Привет Кикстарт - это приводит к «Неожиданному в то время». Следующая строка представляет собой инструкцию while: 'while ($ row = mysql_fetch_array' – Dublay

+0

Нужно полутолкнуть в конце строки. – Kickstart

+0

Такая же проблема ... – Dublay

2

Итак, вы в основном этого хотите?

SELECT 
    COUNT(id), 
    SUM(rating), 
    COUNT(rating) 
FROM comments 
WHERE phone='$phone' AND rating > 0 

Если нет, добавьте некоторые пояснения к своему сообщению.

P.s. Я предполагаю, что вы используете PHP. Убедитесь, что вы не попали в ловушку, которая называется MySQL инъекции

+0

Привет, спасибо за ваши ответы: MrSoundless:.. Я только хочу, чтобы рассчитывать рейтинги, когда значение счетчика> 0 Counting/SUM все остальные значения, но рассчитывать рейтинг только если он> 0 – Dublay

+0

не проблема все :) – MrSoundless

Смежные вопросы