php - 按季度分组年度

标签 php mysql group-by

我需要在我的 .php 文件中按年按季度分组。在 bold 类型中,我显示了需要修复的代码,也就是 switch case 4。刚才我对年、月、周和日进行了分组,但现在我需要季度名称 case 4。我试过了GROUP FUNCTION 的代码,但在 2010 年和 2011 年向我展示了 5 个组,这是错误的。

switch ($level) 
{

  case '4':**
    $group = "FLOOR(EXTRACT(YEAR_MONTH FROM FROM_UNIXTIME(invoice_date))/3)";</b>
    break;
}

固定是


SQL PART


case '4':
                    $group = "EXTRACT(YEAR FROM FROM_UNIXTIME(invoice_date)) as group_field2, EXTRACT(QUARTER FROM FROM_UNIXTIME(invoice_date))";
                    break;

    $sql_select = $db->query("SELECT sum(amount) AS invoice_amount, " . $group . " AS group_field FROM 
                " . DB_PREFIX . "invoices WHERE invoice_date>= " . $startup . " " . $user_query . " GROUP BY group_field, group_field2 ORDER BY group_field2 DESC, group_field DESC");


TEXT - LINK PART

                    case '4':
                        $start = strtotime('+' . (($view_details_received['group_field'] - 1) * 3) . ' months', strtotime($view_details_received['group_field2'] . '/1/1'));
                        $finish = strtotime('+' . (($view_details_received['group_field'] - 1) * 3 + 3) . ' months', strtotime($view_details_received['group_field2'] . '/1/1'));
                        $start = getdate($start);
                        $finish = getdate($finish - 86400);
                        $title = 'Q' . $view_details_received['group_field2'] . ', ' . $view_details_received['group_field'];
                        break;

最佳答案

您可以在 SQL 中使用 EXTRACT(QUARTER FROM date) 然后进行常规 GROUP BY

参见 EXTRACT documentation在 MySQL 网页和 table of possible arguments

关于php - 按季度分组年度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138317/

相关文章:

hadoop - 在HIVE中使用别名进行转换

python - groupby 并选择每个组的第一个、第二个和第四个成员?

php - laravel 正则表达式验证不起作用

mysql - 为什么 Eclipse 建议 "Object"作为数据类型 "Text"的默认映射类型?

javascript - 单击 <td> 元素以使用涉及多个表的 SQL 查询引发自发布事件。 PHP

mysql - 使用哪种字符编码

php - WooCommerce 已取消电子邮件通知,订单过期时未发送

javascript - 为什么我被 403 禁止?

php - 查询显示的数据不完整

mysql - 基于子行的行权限