首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为下列任务获得正确的select函数

如何为下列任务获得正确的select函数
EN

Stack Overflow用户
提问于 2014-09-22 17:02:25
回答 1查看 60关注 0票数 1

我需要在以下网页上显示每个汽车品牌2014年的总销售额:

http://test.com/example/2014/8

htaccess文件:

代码语言:javascript
运行
复制
RewriteRule ^example/([^/]+)/([^/]+)$ test?year=$1&monthnumber=$2 [L,QSA]

示例数据(汽车品牌、年份、月数、销售额):

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
<?php
    $year= $_GET['year'];
    $monthnumber= $_GET['monthnumber'];

(现在是棘手的部分)

代码语言:javascript
运行
复制
    $sql = "SELECT ........

我需要sql select函数来做三件事:

  • 第一步:找到2014年销售汽车的所有不同汽车品牌,=>从example-table选择不同的汽车品牌,其中年份=:年份
  • 步骤2:计算每个不同汽车品牌在该年度的总销售额,=>选择“SUM(销售)为每个汽车品牌”,其中年份=:年份
  • 第三步:按销售总额排序结果,=>按“每个汽车品牌的销售总额”定单。 $stmt = $pdo->prepare($sql);$stmt->bindParam(":year",$year);$stmt->execute();if($result = $stmt->fetch(PDO::FETCH_ASSOC)) { ?>

我的例子的结果应该是:

  • 宝马,5900
  • 梅塞德斯,5400
  • 奥迪,5100

我不知道如何编写给我这些结果的正确的sql函数。更具体地说,我不明白如何在步骤2和步骤3中包括不同的汽车品牌。

有人能帮我处理这个sql函数吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-22 17:16:02

你的考虑几乎是正确的。只有第一个“不同”是错误的。正如注释中所指出的,您应该通过以下方式使用GROUP:

代码语言:javascript
运行
复制
SELECT
    carbrand,
    SUM(sales) totals
FROM
    your_table
WHERE
    year = 2014
GROUP BY
    carbrand
ORDER BY
    totals DESC

演示

如果您使用的是聚合函数,比如SUM(),那么您几乎都希望对数据进行分组。正因为如此,您在用于GROUP子句的函数和修饰符一章中找到了这些函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25979397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档