所以我在Google BigQuery中有一个SQL数据库,其中包含以UTC格式购买的订单时间戳,我使用DAYOFWEEK函数转换为数字(然后我使用CASE语句转换为人类可读的名称)
SQL查询是:
SELECT TypeOfDrink,
CASE WHEN (DAYOFWEEK(CreateAt)=1) THEN 'Sunday' END AS Sunday,
CASE WHEN (DAYOFWEEK(CreateAt)=2) THEN 'Monday' END AS Monday,
CASE WHEN (DAYOFWEEK(CreateAt)=3) THEN 'Tuesday' END AS Tuesday,
CASE WHEN (DAYOFWEEK(CreateAt)=4) THEN 'Wednesday' END AS Wednesday,
CASE WHEN (DAYOFWEEK(CreateAt)=5) THEN 'Thursday' END AS Thursday,
CASE WHEN (DAYOFWEEK(CreateAt)=6) THEN 'Friday' END AS Friday,
CASE WHEN (DAYOFWEEK(CreateAt)=7) THEN 'Saturday' ELSE 'UnDefined' END AS Saturday,
COUNT(TypeOfDrink) AS AmountBought
FROM CafeX_bigdata.Order
GROUP BY Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday, TypeOfDrink
但是,我将此作为输出:
Row TypeOfDrink Sunday Monday Tuesday Wednesday Thursday Friday Saturday AmountBought
1 Single Origin Caffè Latte null null Tuesday null null null UnDefined 12
2 Cappuccino null null Tuesday null null null UnDefined 130
3 Caffè Mocha null null Tuesday null null null UnDefined 161
4 Macchiato null null Tuesday null null null UnDefined 174
5 Caffè Latte null null Tuesday null null null UnDefined 233
在这种情况下,它经历了所有的日子,并列出了购买的数量..但是我只想在一行中将它们全部列在一行,在那里它们将列出一行中每周的每日值,而不是7行NULLS!
我正在使用BigQuery,因此一些SQL有点不同。我该怎么做?
谢谢! :)
答案 0 :(得分:0)
您需要条件聚合。它看起来像这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN"
"http://w...content-available-to-author-only...3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://w...content-available-to-author-only...3.org/1999/xhtml">
<head>
<title>PHP Code Blocks</title>
<meta http-equiv="content-type"
content="text/html; charset=iso-8859-1" />
</head>
<body>
<h1>Song Organizer</h1>
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
if (isset($_GET['action'])) {
if ((file_exists("SongOrganizer/songs.txt"))
&& (filesize("SongOrganizer/songs.txt")
!= 0)) {
$SongArray = file(
"SongOrganizer/songs.txt");
switch ($_GET['action']) {
case 'Remove Duplicates':
$SongArray = array_unique($SongArray);
$SongArray = array_values($SongArray);
break;
case 'Sort Ascending':
sort($SongArray);
break;
case ’Shuffle’:
shuffle($SongArray);
break;
} // End of the switch statement
if (count($SongArray)>0) {
$NewSongs = implode($SongArray);
$SongStore = fopen("SongOrganizer/songs.txt","wb");
if ($SongStore === false)
echo "There was an error updating the song file\n";
else {
fwrite($SongStore, $NewSongs);
fclose($SongStore);
}
}
else
unlink("SongOrganizer/songs.txt");
}
}
if (isset($_POST['submit'])) {
$SongToAdd = stripslashes(
$_POST['SongName']) . "\n";
$ExistingSongs = array();
if (file_exists("SongOrganizer/songs.txt")
&& filesize("SongOrganizer/songs.txt")
> 0) {
$ExistingSongs = file(
"SongOrganizer/songs.txt");
if (isset($_POST['submit'])) {
$SongToAdd = stripslashes($_POST['SongName']) . "\n";
$ExistingSongs = array();
if (file_exists("SongOrganizer/songs.txt")
&& filesize("SongOrganizer/songs.txt")> 0) {
$ExistingSongs = file("SongOrganizer/songs.txt");
}
}
}
}
if ((!file_exists("SongOrganizer/songs.txt"))
|| (filesize("SongOrganizer/songs.txt")
== 0))
echo "<p>There are no songs in the
list.</p>\n";
else {
$SongArray = file(
"SongOrganizer/songs.txt");
echo "<table border=\"1\" width=\"100%\"
style=\"background-color:lightgray\">\n";
foreach ($SongArray as $Song) {
echo "<tr>\n";
echo "<td>" . htmlentities($Song) .
"</td>";
echo "</tr>\n";
}
echo "</table>\n";
}
?>
<p>
<a href="SongOrganizer.php?action=Sort%20Ascending">
Sort Song List</a><br />
<a href="SongOrganizer.php?action=Remove%20Duplicates">
Remove Duplicate Songs</a><br />
<a href="SongOrganizer.php?action=Shuffl e">
Randomize Song list</a><br />
</p>
<form action="SongOrganizer.php" method="post">
<p>Add a New Song</p>
<p>Song Name: <input type="text" name="SongName"
/></p>
<p><input type="submit" name="submit"
value="Add Song to List" />
<input type="reset" name="reset"
value="Reset Song Name" /></p>
</form>
</body>
</html>