以下查询允许我计算学生所选课程的类型。
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
结果是:
我现在想要按等级找到每种类型的比率。 Count之后的第四列对于7年级的所有行都是(303 + 529 + 50或882),对于8年级(719 + 139 + 15或873)。我认为我的SELECT语句中需要SUM。为了澄清,对于该等级,第四栏将是8年级的882年级和8年级的873年级。任何帮助将不胜感激。
答案 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