Как получить список значений в пункте GROUP_BY?

Я не уверен, к чему именно вы стремитесь, но основная проблема, с которой вы столкнулись, заключается в том, что вы используете много элементов ul и li, которые имеют поля по умолчанию и отступы. Так что, если вы просто сбросите это так ...

ul {
  margin: 0;
  padding: 0;
}

... это большой шаг вперед. Следующим шагом является точная настройка ширины и т. Д.

@charset "utf-8";
/* REVIEWS */

body {
    font-family: courier;
}
* {
  box-sizing: border-box;
}
.reviewsection {
    float: left;
    width:35%;
    margin-right: 20px;
}

.reviews {display:inline-block;
             padding-top: 10px}

.reviews a {
    color: black; 
    text-decoration: none;
    font-size: 25px;
    font-weight: bold;
    margin-top: 20px;
    border: 1px solid black;
    padding: 0px 5px;
    background-color: white;
}

.reviews a:hover {
    background-color: black; 
    color:white;
    border: 1px solid white;
}

.reviewsimg {
    display:flex;
    padding:0px;
    background-color:white;
    border: 1px solid black;
    width:100%;
    height: 100%;
    max-height: 350px;
    margin-top: -13px;
    list-style: none;
}

.albumartspace {
    width:100%;
    max-width:250px;
    height:auto;
}

.albumart {
    margin-top:22px;
    margin-left: 10px;
    margin-bottom: 5px;
    position: relative;
}

.albumart img:hover {
    opacity: .8;
}

.albumdetails {
    padding-top: 20px;
    padding-left: 20px;
    list-style: none;
}

.artistname {
    font-size: 25px;
    font-weight: bold;
}

.albumname {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}

.edited {
    padding-left:0px;
    list-style-type: none;
    font-style: italic;
}

.author {
    display: inline;
}

.genre {
    display: inline;
    color: red;
}

.lastedited {
    display: inline;
    color: grey;
}

/* RELEASE CALENDAR */

.releasesection {
display: inline-block;    width:60%;
    height:auto;
}

.releasecalendar {
    display:block;
    padding-top: 10px;
    float: left;
}

.releasecalendar a {
    color: white; 
    text-decoration: none;
    font-size: 25px;
    font-weight: bold;
    margin-top: 20px;
    border: 1px solid white;
    padding: 0px 5px;
    background-color: black;
}

.releasecalendar a:hover {
    background-color: white; 
    color:black;
    border: 1px solid black;
}

.calendarimg {
    float:left;
    width:100%;
    height:auto;
    margin-left: 0px;
}

.artandtext {
    display:inline-block;
    width:19%;
    height:auto;
    margin: 0px;
    list-style: none;
}

.calendarart {
    width:100%;
    height:100%;
    list-style-image: none;
    margin-right: 0px;
}

.calendarartspace {
    width:100%;
    height:100%;
    margin-right: 0px;
}
ul {
  margin: 0;
  padding: 0;
}
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<style type="text/css">
    @import url("yeyeyyey.css");
    </style>
</head>

<body>
    <section class="reviewsection">
        <div class="reviews"><a href="reviews.html">reviews.</a></div>
        <ul class="reviewsimg">
            <li class="albumart"><a class="album" href="#"><img class="albumartspace" src="https://placehold.it/300x300/ccc" alt="Warehouse Project"></a></li>
                <ul class="albumdetails">
                    <li class="artistname">Artist Name</li>
                    <li class="albumname"><a class="album">Album Name</a></li>
                    <ul class="edited">
                        <li class="author">Author /</li>
                        <li class="genre"> Genre </li>
                        <li class="lastedited">/ Last Edited</li>
                    </ul>
                    <li class="albumsummary"><p>[summary of album]</p></li>
                </ul>
        </ul>
    </section>

    <section class="releasesection">
      <div class="releasecalendar"><a href="releasecalendar.html">release calendar.</a></div>
        <ul class="calendarimg">
            <ul class="artandtext">
                <li class="calendarart"><a class="calendaralbum" href="#"><img class="calendarartspace" src="https://placehold.it/300x300/ccc" alt="Album"></a></li>
                <li class="releasedate">Release Date</li>
                <li class="name">Artist Name</li>
                <li class="albumtitle">Album Title</li>
            </ul>
            <ul class="artandtext">
                <li class="calendarart"><a class="calendaralbum" href="#"><img class="calendarartspace" src="https://placehold.it/300x300/ccc" alt="Album"></a></li>
                <li class="releasedate">Release Date</li>
                <li class="name">Artist Name</li>
                <li class="albumtitle">Album Title</li>
            </ul>
            <ul class="artandtext">
                <li class="calendarart"><a class="calendaralbum" href="#"><img class="calendarartspace" src="https://placehold.it/300x300/ccc" alt="Album"></a></li>
                <li class="releasedate">Release Date</li>
                <li class="name">Artist Name</li>
                <li class="albumtitle">Album Title</li>
            </ul>
            <ul class="artandtext">
                <li class="calendarart"><a class="calendaralbum" href="#"><img class="calendarartspace" src="https://placehold.it/300x300/ccc" alt="Album"></a></li>
                <li class="releasedate">Release Date</li>
                <li class="name">Artist Name</li>
                <li class="albumtitle">Album Title</li>
            </ul>
            <ul class="artandtext">
                <li class="calendarart"><a class="calendaralbum" href="#"><img class="calendarartspace" src="https://placehold.it/300x300/ccc" alt="Album"></a></li>
                <li class="releasedate">Release Date</li>
                <li class="name">Artist Name</li>
                <li class="albumtitle">Album Title</li>
            </ul>
        </ul>
    </section>
</body>
</html>

28
задан Eric Leschinski 10 January 2017 в 01:26
поделиться

6 ответов

Я знаю, что в MySQL существует GROUP_CONCAT, и в Sybase я думаю, что это СПИСОК , как указано в другом ответе:

SELECT id, LIST(data||', ')
FROM yourtable
GROUP BY id
13
ответ дан lpfavreau 28 November 2019 в 03:45
поделиться

В MsSQL можно использовать функцию (Не знайте, существует ли somenthing подобный в SyBase)

CREATE FUNCTION [dbo].[GetDataForID]
(
    @ID int
)
RETURNS varchar(max)
AS
BEGIN
    declare @output varchar(max)
    select @output = COALESCE(@output + ', ', '') + data
    from table
    where ID = @ID

    return @output
END
GO

И затем:

SELECT ID, dbo.GetDataForID(ID) as Data
FROM Table
GROUP BY ID
5
ответ дан Eduardo Molteni 28 November 2019 в 03:45
поделиться

Вы не можете сделать это в прямой GROUP BY в обычном SQL. Вы должны использовать курсор (или аналогичную конструкцию) для объединения значений в каждой группе вручную.

  • Oracle позволяет вам определить собственный агрегатор, который будет выполнять эту конкатенацию в PL / SQL.
  • SQL Server позволяет вам определить собственный агрегатор в .NET, который бы тоже это делал.
  • Я не уверен, какие возможности есть у Sybase для определения пользовательских агрегаторов.
3
ответ дан Dave Markle 28 November 2019 в 03:45
поделиться

Я думаю, вам придется использовать курсор ( http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/50501;pt=50305 )

1
ответ дан Dan Williams 28 November 2019 в 03:45
поделиться

Это были несколько лет, с тех пор как я попытался использовать синтаксис, и у меня больше нет доступа к iAnywhere экземпляру, но была агрегатная функция (список), чтобы сделать такую задачу. Я не могу подтвердить, поддерживается ли СПИСОК () все еще.

SELECT id,
       LIST(data)
FROM   table
GROUP BY id
0
ответ дан KDrewiske 28 November 2019 в 03:45
поделиться

В SQL Server:

select distinct b.id, data=STUFF((select ',' +convert(varchar,id)
from yourtable a
where a.id=b.id
for xml path ('')),1,1,'')
from yourtable b
1
ответ дан Nishu Tayal 28 November 2019 в 03:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: