需要在选择中添加计数

时间:2016-05-05 02:33:06

标签: php mysql

以下查询允许我计算学生所选课程的类型。

SELECT student_schedule.Grade, LEFT(student_schedule.Course,2) AS 'Type',  
COUNT(*) AS 'Count'
FROM student_schedule
GROUP BY Type, Grade
ORDER BY Grade, Type

结果是:

enter image description here

我现在想要按等级找到每种类型的比率。 Count之后的第四列对于7年级的所有行都是(303 + 529 + 50或882),对于8年级(719 + 139 + 15或873)。我认为我的SELECT语句中需要SUM。为了澄清,对于该等级,第四栏将是8年级的882年级和8年级的873年级。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

试试这个:

package com.egroegnosbig.dicerollergui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Fishing {
    public static void main(String[] args) {
        //create Jframe
        JFrame Frame = new JFrame("Fishing Game");

        JPanel panel = new JPanel(new BorderLayout());
        panel.setPreferredSize(new Dimension(600,600));

        //two panels in main panel
        JPanel panelup = new JPanel();
        JPanel paneldown = new JPanel();
        panelup.setBackground(Color.white);

        //title image with word overlay
        ImageIcon pole1 = new ImageIcon("fishingpole.png");
        JLabel title = new JLabel(pole1);
        title.setBounds(150, 0,325,175);
        title.setText("Go Fishing?");
        title.setFont(new Font("Ravie", Font.BOLD, 30));
        title.setForeground(Color.green);
        title.setHorizontalTextPosition(JLabel.CENTER);
        title.setVerticalTextPosition(JLabel.CENTER);
        title.setOpaque(false);
        panelup.add(title);

        panelup.setPreferredSize(new Dimension(600,375));
        panelup.setLayout(null);

        JLabel points = new JLabel("<html>Look what you caught!<br>(click start to keep going)</html> " );
        points.setForeground(Color.blue);
        points.setFont(new Font(null, Font.BOLD, 20));
        points.setBounds(10,150, 450, 100);
        panelup.add(points);

        JTextField caught = new JTextField(20);
        caught.setSize(10,10);
        caught.setFont(new Font("Times New Roman", Font.BOLD, 15));
        caught.setForeground(Color.RED);
        caught.setBounds(10,230,350,30);
        panelup.add(caught);

        JTextField total = new JTextField(20);
        total.setSize(10,10);
        total.setFont(new Font("Times New Roman", Font.BOLD, 15));
        total.setForeground(Color.RED);
        total.setBounds(325,315,150,30);
        panelup.add(total);

        ** This is the stop button**
        JLabel End = new JLabel("<html>All Done?! Press Stop and Let's<br>see how well you did!<html>" );
        End.setForeground(Color.blue);
        End.setFont(new Font(null, Font.BOLD, 20));
        End.setBounds(10, 310, 325, 50);
        panelup.add(End);

        JTextField single = new JTextField(20);
        single.setSize(10,10);
        single.setFont(new Font("Times New Roman", Font.BOLD, 15));
        single.setForeground(Color.RED);
        single.setBounds(10,275,100,30);
        panelup.add(single);

        //Label for asking user to continue
        ImageIcon bobber = new ImageIcon("bobber2.jpg");
        JButton start = new JButton(bobber);
        start.setBorderPainted(false);
        start.setBounds(350, 170,100,100);
        start.setText("Start!");
        start.setFont(new Font("Serif", Font.BOLD, 20));
        start.setForeground(Color.black);
        start.setHorizontalTextPosition(JLabel.CENTER);
        start.setVerticalTextPosition(JLabel.CENTER);
        start.setOpaque(false);
        panelup.add(start);

        ImageIcon bobber2 = new ImageIcon("bobber2.jpg");
        JButton stop= new JButton(bobber2);
        stop.setBorderPainted(false);
        stop.setBounds(450, 170,100,100);
        stop.setText("Stop!");
        stop.setFont(new Font("Serif", Font.BOLD, 25));
        stop.setForeground(Color.black);
        stop.setHorizontalTextPosition(JLabel.CENTER);
        stop.setVerticalTextPosition(JLabel.CENTER);
        stop.setOpaque(false);
        panelup.add(stop);

        start.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    double input = 0;
                    int count = 0 ;
                    int points2 = 0;
                    int die;
                    die = (int)(Math.random()*6) + 1;

                    if (die == 1)
                    {
                        caught.setText("Winner winner fish fry dinner! Catfish ");
                        points2 =  10;
                    }
                    if (die == 2)
                    {
                        caught.setText("Nemo! Go straight to Jail. ");
                        points2 = 15;
                    }
                    if (die == 3)
                    {
                        caught.setText("Stinky shoe boohoo! ");
                        points2 = 5;
                    }
                    if (die == 4)
                    {
                        caught.setText("Whale of a fish, BIG TUNA ");
                        points2 = 30;
                    }
                    if (die == 5)
                    {
                        caught.setText("Yumm Yumm Bass Pro");
                        points2 = 25;
                    }
                    if (die == 6)
                    {
                        caught.setText("Is that a toilet bowl seat!? ");
                        points2 = 10;
                    }

                    count += points2;

                    single.setText(points2 + "");
                    {
                    }
                }
            }
        );

        stop.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    int total2 = 0;
                    int totalpoints =0;

                    totalpoints += total2;

                    total2 = Integer.parseInt(single.getText());
                    totalpoints += total2;
                    total.setText(""+ totalpoints);
                }
            }
        );

        //paneldown image
        ImageIcon water = new ImageIcon("water.jpg");
        JLabel pic = new JLabel(water);    
        paneldown.add(pic, BorderLayout.SOUTH);

        //panel positioning
        panel.add(panelup, BorderLayout.NORTH);
        panel.add(paneldown, BorderLayout.SOUTH);

        //set frame with panel
        Frame.add(panel);
        Frame.pack();
        Frame.setLocationRelativeTo(null);
        Frame.setSize(600,600);
        Frame.setVisible(true);
    }
}

答案 1 :(得分:0)

根据您的要求尝试以下查询

SELECT t.Grade,t.Type,t.Count,sum(t.Count) from
(SELECT student_schedule.Grade AS 'Grade', LEFT(student_schedule.Course,2) AS 'Type',  
COUNT(*) AS 'Count'
FROM student_schedule
GROUP BY Type, Grade
ORDER BY Grade, Type) as t
GROUP BY t.Count