I'm trying to add features to a preexisting application and I came across a MySQL view something like this:
GROUP BY table_name.personID;
It's true that this feature permits some ambiguous queries, and silently returns a result set with an arbitrary value picked from that column. In practice, it tends to be the value from the row within the group that is physically stored first.
These queries aren't ambiguous if you only choose columns that are functionally dependent on the column(s) in the GROUP BY criteria. In other words, if there can be only one distinct value of the "ambiguous" column per value that defines the group, there's no problem. This query would be illegal in Microsoft SQL Server (and ANSI SQL), even though it cannot logically result in ambiguity:
SELECT AVG(table1.col1), table1.personID, persons.col4 FROM table1 JOIN persons ON (table1.personID = persons.id) GROUP BY table1.personID;
Also, MySQL has an SQL mode to make it behave per the standard:
FWIW, SQLite also permits these ambiguous GROUP BY clauses, but it chooses the value from the last row in the group.