0

所以我开始寻找是否可以/应该将我的网站的宽度从 1000 像素增加到 1200 像素,因为显然 90% 以上的人的屏幕高于 1024 像素。

我想按用户分组,但如果他们使用不同的屏幕,我会多次计数。这给了我所有尺寸的列表,但我只想要不同的宽度并计算出现的数量。

我得到了我想要的结果,但认为 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 来确定屏幕超过 1240 像素的用户百分比

第二个问题:你能不能只使用 mySQL 而不使用 PHP 来实现这个结果?

结果是 86.7% 的屏幕大于 1240 像素

第三个问题:我是否应该将我的网站宽度从 1000px -> 1200px 增加,这样很快,9/10 的用户将获得更好的体验,而 1/10 的用户将获得令人讨厌的视图?

我知道我可以为不同的用户以不同的方式显示它,但我宁愿有一个单一的视图

4

2 回答 2

0

答案:

1)我认为没有必要改进您的代码,因为它可以满足您的需求。

2) 使用 PHP 可以帮助您获得一些结果 (OOP),例如获取用户的屏幕大小、浏览器类型、操作系统类型 ...等。但 mySQL 与存储这些数据有关。

3) 这取决于在您的网站上注册的用户数量。您还需要获取每周注册用户的百分比。如果没有那个尺寸,比例是 1/10。是的,最好增加网站的宽度。

问候

于 2013-03-22T18:09:21.127 回答
0

为什么需要子查询?下面的查询应该是足够的

SELECT width, count(distinct userId) as count  
FROM user_hit 
WHERE width>=1024 
GROUP BY width 
ORDER BY width
于 2013-03-22T18:10:37.603 回答