我需要在以下网页上显示每个汽车品牌的2014年总销售额:
http://test.com/example/2014/8
。
htaccess文件:
RewriteRule ^example/([^/]+)/([^/]+)$ test?year=$1&monthnumber=$2 [L,QSA]
示例数据(carbrand,年,月数,销售额):
carbrand year month sales
----------------------------
Mercedes 2014 8 2800
BMW 2014 8 3000
Audi 2014 8 2700
Mercedes 2014 7 2600
BMW 2014 7 2900
Audi 2014 7 2400
HTML / PHP的:
<?php
$year= $_GET['year'];
$monthnumber= $_GET['monthnumber'];
(现在棘手的部分)
$sql = "SELECT ........
我需要sql select
函数来做三件事:
example-table
WHERE year =:year 第3步:按总销售额排序结果,desc =&gt;订购“每个汽车品牌的SUM(销售)”DESC
$stmt = $pdo->prepare($sql);
$stmt->bindParam(":year", $year);
$stmt->execute();
if($result = $stmt->fetch(PDO::FETCH_ASSOC))
{
?>
<?php echo $result['carbrand'];?> <?php echo $result['(sum sales for that brand in a given year'];?>
<?php
}// end if
else {
echo '0 results';
}// end else
?>
我的例子的结果应该是:
我无法弄清楚如何编写正确的sql函数给我这些结果。更具体地说,我不知道如何在步骤2和步骤3中包含不同的汽车品牌。
任何人都可以帮我解决这个sql函数吗?
答案 0 :(得分:1)
您的考虑几乎是正确的。只有第一个“区别”是错误的。 正如评论中指出的那样,您应该使用GROUP BY:
SELECT
carbrand,
SUM(sales) totals
FROM
your_table
WHERE
year = 2014
GROUP BY
carbrand
ORDER BY
totals DESC
如果您正在使用像SUM()这样的聚合函数,那么您几乎想要对数据进行分组。因此,您可以在Functions and Modifiers for Use with GROUP BY Clauses一章中找到这些功能。