2013-03-22 1 views
0

Итак, я решил узнать, могу ли я/увеличить/увеличить ширину моего сайта от 1000 до 1200 пикселей, поскольку, по-видимому, 90% + люди имеют экраны выше 1024 пикселей.Можете ли вы улучшить mySQL-запрос с помощью нескольких GROUP BY

Я хотел бы сгруппировать по пользователям, но считать их несколько раз, если они использовали разные экраны. Это дает мне список всех размеров, но мне нужны только разные ширины и подсчет количества вхождений.

Я получил результаты, которые я хотел, но думаю, что SQL-запрос довольно плох.

Первого вопрос: Вы можете улучшить мне SQL запрос ниже:

SELECT width,COUNT(width) 
FROM (
    SELECT width 
    FROM user_hit 
    WHERE width>=1024 
    GROUP BY userId,width 
    ORDER BY width 
) AS widths 
GROUP BY width 
ORDER BY COUNT(width) DESC 

С результатами, которые я использовал PHP, чтобы определить% пользователь с экраном выше 1240px

Второго вопроса: Могли бы вы достичь этот результат, используя только MySql и PHP не

результат был 86,7% имеют экраны больше чем 1240px

Третий вопрос: Должен ли я в уменьшите ширину моего веб-сайта от 1000px -> 1200px, прогнозируя, что в ближайшее время пользователи 9/10 получат лучший опыт, в то время как 1/10 будет раздражать?

Я знаю, что я мог бы показать его по-разному для разных пользователей, но я предпочел бы иметь один вид

+0

Вы не используете 'GROUP BY' правильно. Я тоже не вижу смысла в этом вопросе. – Kermit

+0

Я забыл добавить, мой сайт интенсивный и, следовательно, дополнительная ширина является ценной и будет использоваться – DrK

+0

Да, я не думаю, что SQL очень хорош, я прошу помочь в ее улучшении – DrK

ответ

0

Зачем вам нужен подзаголовок? Следующий запрос должен быть enogh

SELECT width, count(distinct userId) as count 
FROM user_hit 
WHERE width>=1024 
GROUP BY width 
ORDER BY width 
+0

Я могу подтвердить Следующий SQL-сделал те же результаты, как мой выше вопрос, и это намного лучше: SELECT, ширина, граф (отличный идентификатор пользователя) в качестве счетчика ОТ user_hit ГДЕ ширина> = 1024 GROUP BY ширина ORDER BY DESC счета – DrK

0

Ответы:

1) Я думаю, что нет никакой необходимости, чтобы улучшить свой код, потому что он делает то, что вы необходимость.

2) Использование PHP помогает вам с некоторыми результатами (ООП), такими как получение размера экрана для пользователей, типа браузера, типа ОС и т. Д. но mySQL связан с хранением данных.

3) Это зависит от количества пользователей, регистрирующихся на вашем веб-сайте. также вам нужно получить% зарегистрированных в неделю пользователей. если соотношение составляет 1/10 для того, чтобы не иметь такого размера. да, лучше увеличить ширину вашего сайта.

С уважением

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